【问题标题】:Laravel Carbon - can't check date without hour from timestampLaravel Carbon - 无法从时间戳检查没有小时的日期
【发布时间】:2017-11-22 20:56:41
【问题描述】:

我想用 Laravel 和 Carbon 总结一天的所有价格。

我可以像这样在没有小时的情况下回显日期:

Carbon\Carbon::parse($cost->created_at)->format('d-m-Y')

它给了我这样的结果:22-11-2017

我需要总结一天的所有结果,所以基本上我需要类似

{{ $costs->where('created_at)**(but without hour)**, Carbon\Carbon::parse($cost->created_at)->format('d-m-Y'))->sum('price') }}

我尝试过这样的事情:

{{ $costs->where(Carbon\Carbon::parse('created_at')->format('d-m-Y'), Carbon\Carbon::parse($cost->created_at)->format('d-m-Y'))->sum('price') }}

但它不起作用。

【问题讨论】:

    标签: php laravel date timestamp php-carbon


    【解决方案1】:

    您可以使用 Carbon 中可用的修饰符之一,以便对 created_at 日期进行分组。因此,不要删除时间,只需使用 startOfDay() 方法将其设置为 00:00:00。

    $object->created_at->startOfDay()
    

    来自http://carbon.nesbot.com/docs

    【讨论】:

    • 但是日期现在不匹配,因为我有不同的日期,例如:2017-11-22 20:14:14 和 2017-11-22 00:00:00
    • 您需要在需要比较的所有日期上使用startOfDay() 方法
    • 但是当我这样做时它会给我一个错误: {{ $costs->where(('created_at')->startOfDay(), $cost->created_at->startOfDay( ))->sum('price') }} ""Call to a member function startOfDay() on string"" 如何在第一个'created_at'上使用这个解析器?
    猜你喜欢
    • 2020-01-06
    • 2018-01-10
    • 1970-01-01
    • 1970-01-01
    • 2022-07-08
    • 2017-09-24
    • 1970-01-01
    • 2017-02-16
    • 2022-01-23
    相关资源
    最近更新 更多