【问题标题】:Get Date time differnce base result (laravel 5.3)获取基于日期时间差异的结果(laravel 5.3)
【发布时间】:2017-04-19 16:49:37
【问题描述】:

我有一个 deliverables 表,我想获得当前日期时间与创建日期相差 2 天的结果。

例如,今天是 2017 年 4 月 19 日,我想获取截止日期为 2017 年 4 月 21 日的所有记录,因为 2017 年 4 月 19 日和 2017 年 4 月 21 日之间相差 2 天,或者如果 4-20 -2017 它还应该检索如果差异大于 2,它不应该检索。

简而言之,如果当前日期和截止日期之间的差异为 2 天或更短,则应检索

我试过了

$deliverables_dead = DB::table('deliverables')->where('user_id' , Auth::user()->id)->where('deadline' , '>' , Carbon\Carbon::now())->get();

它获取截止日期大于当前时间的所有记录。

请帮助我如何得到上述粗体声明的答案......

【问题讨论】:

    标签: php mysql laravel datetime php-carbon


    【解决方案1】:

    使用 whereBetween() 和 Carbon 的 addDays()

    DB::table('deliverables')
        ->where('user_id', auth()->id())
        ->whereBetween('deadline' , [Carbon\Carbon::now(), Carbon\Carbon::now()->addDays(2)])
        ->get();
    

    【讨论】:

    • 亲爱的先生,你能更新一下,我能知道区别是一天还是两天?
    • @bluemoon 你的意思是你想得到两个结果——从现在开始的 0-24 小时和从现在开始的 24-48 小时?在这种情况下,我建议您使用 Eloquent 来通过上面的查询加载数据,然后使用集合助手来过滤结果。
    • 我只是想在刀片中获得差异,但是我可以在控制器中以$date = Carbon\Carbon::parse($deliverables_dead->deadline); $now = Carbon\Carbon::now(); $length = $date->diffInDays($now); dd($length); 的方式获得它,我如何在刀片中做同样的事情?
    • 使用 Eloquent 并将 deadline 添加到 $dates 属性。然后 Laravel 会自动将截止日期转换为 Carbon 实例。然后你就可以在 Blade 中做这样的事情了:{{ $deliverable->deadline->diffInDays(Carbon::now()) }}
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-26
    • 1970-01-01
    • 2013-05-18
    • 1970-01-01
    • 2019-05-17
    相关资源
    最近更新 更多