我确实尝试了不同的方法,但是我没有获得正确的时间格式。
$news->created_at = Carbon::parse($news->created_at)->format('M, d, Y');
$news->created_at = date('d M Y',strtotime($news->created_at))
$news->created_at = date('d M Y',$news->created_at)
$news->created_at = Carbon::createFromFormat("d M Y",strtotime($news->created_at));
$news->created_at = $news->created_at->format('M, d, Y');
错误是
发现意外数据
找不到分隔符号
InvalidArgumentException
Carbon.php: 910
dd($ news-> created_at);
Carbon @1550035143 {#361 ▼
date: 2019-02-13 05:19:03.0 UTC (+00:00)
}
答案 0 :(得分:0)
您的$news->created_at
字段中已经有一个Carbon实例,因为雄辩的模型默认情况下会考虑created_at
and updated_at
columns as timestamps并将其自动转换为Carbon
实例。因此,您只需要使用Carbon的format
方法:
$news->created_at->format('d M Y');
但是,当您尝试在模型实例上将字符串重新分配为created_at
的值时,它与Laravel的内部增变器发生冲突,后者试图将分配给日期字段的任何值从Carbon实例转换为字符串
您可以在public $timestamps = false;
模型中设置News
,然后在处理模型时间戳时在整个应用程序中使用字符串,但这似乎是一种技巧,而不是解决方案,因为您会放弃Carbon提供的所有好处。
您还可以通过在序列化时处理时间戳来实现此目的,例如:
return collect($news->makeHidden(['created_at']))->merge([
'created_at' => $news->created_at->format('d M Y')
]);
上面的代码将隐藏序列化过程中传递给makeHidden
的列。然后,您可以将隐藏列的格式化值合并到响应中。