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

Mig*_*lim 0 php datetime date php-carbon

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

该值并不意味着要格式化为字符串,因为在代码中它用于与其他日期进行比较。

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

\Carbon\Carbon::parse(\Carbon\Carbon::now()->format('Y-m-d'));
Run Code Online (Sandbox Code Playgroud)

有没有更正确的方法来进行此操作?

Mar*_*per 6

您可以使用Carbon 的hourminutesecondsetter。

$dt = Carbon::now();
$dt->hour = 0;
$dt->minute = 0;
$dt->second = 0;
Run Code Online (Sandbox Code Playgroud)

查看文档

或者流利的设置者:

$dt = Carbon::now()
    ->hour(0)
    ->minute(0)
    ->second(0);
Run Code Online (Sandbox Code Playgroud)

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

$dt = Carbon::now()->setTime(0, 0)
Run Code Online (Sandbox Code Playgroud)

查看文档