找到laravel中两个日期之间的天数

Kir*_*ing 8 laravel-5

我要约会.现在,我需要找出这两者之间的差异,以便进一步计算.

我尝试了不同的方法,但我无法解决问题.任何人都可以告诉我最好的方法.

我的代码是:

public function leaveRequest(request $request)
{
    $fdate=$request->Fdate;
    $tdate=$request->Tdate;

    $start = Carbon::parse($fdate)->format('Y/m/d');
    $end =  Carbon::parse($tdate)->format('Y/m/d');

    $days = $end->diffInDays($start);
    /*$days=date_diff($end,$start);*/
    echo $days;
    exit;

    $user = User::findOrFail(Auth::user()->id);
    Mail::send('pages.leave', ['user' => $request,'userId'=>$user], function ($m) use ($request) {
        $m->to($request->Email)->subject('Leave Request!');
    });

    DB::table('leaves')->insert(
        ['user' => Auth::user()->id, 'request_date' => Carbon::now(),'start' => $start,'end' => $end,'permissions' => "Pending",'leave_status' => "Active"]
    );

    return redirect()->back()->with('message','Your request has sent');
}
Run Code Online (Sandbox Code Playgroud)

如果我可以得到这些日子,那么我可以将它插入叶子表中.

小智 13

$to = \Carbon\Carbon::createFromFormat('Y-m-d H:s:i', '2015-5-5 3:30:34');
$from = \Carbon\Carbon::createFromFormat('Y-m-d H:s:i', '2015-5-6 9:30:34');

$diff_in_days = $to->diffInDays($from);

print_r($diff_in_days); // Output: 1
Run Code Online (Sandbox Code Playgroud)


Lea*_*ner 11

你不需要Carbon,你可以使用简单的PHP来做到这一点.最好是使用PHP OOP方式.像这样:

$fdate = $request->Fdate;
$tdate = $request->Tdate;
$datetime1 = new DateTime($fdate);
$datetime2 = new DateTime($tdate);
$interval = $datetime1->diff($datetime2);
$days = $interval->format('%a');//now do whatever you like with $days
Run Code Online (Sandbox Code Playgroud)

PS:DateTime不是一个函数,它是一个类,所以不要忘记添加:use DateTime;在控制器的顶部,以便它可以引用右根类或使用\ DateTime()代替它的实例.

我希望它有所帮助


Had*_*azi 9

为什么不使用 Carbon 助手来获取准确的日期

$to = \Carbon\Carbon::parse($request->to);
$from = \Carbon\Carbon::parse($request->from);

        $years = $to->diffInYears($from);
        $months = $to->diffInMonths($from);
        $weeks = $to->diffInWeeks($from);
        $days = $to->diffInDays($from);
        $hours = $to->diffInHours($from);
        $minutes = $to->diffInMinutes($from);
        $seconds = $to->diffInSeconds($from);
Run Code Online (Sandbox Code Playgroud)