从碳日期中删除小时、分钟和秒

Remove hours, minutes and seconds from Carbon date

我目前收到的 Carbon 日期如下:2021-03-17 17:14:42.01811,我不想考虑小时、分钟和秒,将其转换为一天的开始。

此值不应格式化为字符串,因为在代码中它用于与其他日期进行比较。

我设法找到了一个解决方案,但它似乎不是最有效的解决方案,我正在使用 now() 函数作为示例

\Carbon\Carbon::parse(\Carbon\Carbon::now()->format('Y-m-d'));

有没有更正确的操作方法?

您可以使用 Carbon 的 hourminutesecond setter。

$dt = Carbon::now();
$dt->hour = 0;
$dt->minute = 0;
$dt->second = 0;

See docs

或者流利的setters:

$dt = Carbon::now()
    ->hour(0)
    ->minute(0)
    ->second(0);

或者使用 fluent setter setTime($hour, $minute, $second = 0, $microseconds = 0) 也将微秒设置为零:

$dt = Carbon::now()->setTime(0, 0)

See docs

你在找

    Carbon::today()

http://carbon.nesbot.com/docs/#api-formatting

就用这个

    $dt = Carbon::now();
    echo $dt->toDateString(); 

converting it to the start of the day.

Carbon::now()->startOfDay();

试试看:https://try-carbon-lib.herokuapp.com/?input=echo%20Carbon%3A%3Anow()-%3EstartOfDay()%3B