无法在 Laravel 中设置 Carbon 变量

Cannot set Carbon variable in Laravel

我想像这样将一个项目的值设置为小时和分钟:

foreach ($items as $item){
    if($item->created_at->gte($begin_date) && $item->created_at->lte($end_date))
    {
        $item->created_at = $item->created_at->format('H:m');
        $sorted_items[] = $item;
    }
}

当我使用 dd($item->created_at->format('H:m')) 时,它会正确显示小时和分钟,但是当我尝试将 $item->created_at 设置为小时和分钟时,它会抛出此错误:

InvalidArgumentException in Carbon.php line 582:
Unexpected data found.
Data missing

我觉得不能用created_at,这个是在model.php里定义的。如果你使用另一个属性,比如 created_at_formatted 它应该可以工作。

$item->created_at_formatted = Carbon::createFromFormat('Y-m-d H:i:s', $item->created_at)->format('H:m');

Laravel 在你的模型中使用 protected $dates; 来分配一个 Carbon 实例,所以每次你调用 $item->created_at 它都会 return Carbon::parse($item->created_at)。这无法完成,因为您将数据更改为不正确的值 (H:m)。

希望这有效!