我正在尝试将日期值插入到我的datatables实例中,但我无法正确地获得格式。
我的控制器正在引入名为'created_at'的mysql时间戳:
if( $d->created_at > $deadline){
$d->call_status = 'new';
}
我正在转储它并返回正确的数据,并且当前在我的数据表中它会转储正确的数据,但它是一个完整的时间戳。
所以这个:
<td class="createdAt">
@if(!is_null($this->created_at))
{{ $this->created_at }}
@endif
</td>
工作但返回06/12/2018 00:00:00
我只想要日期部分。但是,当我尝试这个时:
<td class="createdAt">
@if(!is_null($this->created_at))
{{ $this->created_at->date->format('Y-m-d') }}
@endif
</td>
它说它不能在字符串上调用format()。
格式行适用于我的其他列,但这些是mysql DATE字段,而不是时间戳。
最佳做法是如何才能正确显示日期部分?
答案 0 :(得分:1)
你可以使用mutators,试试这个: 在您的模型中创建
public function getCreatedDateAttribute(){
return date('Y-m-d',strtotime($this->created_at));
}
答案 1 :(得分:1)
如果它在模型中,您可以使用attribute casting。
protected $casts = [
'created_at' => 'date:Y-m-d',
];
或者取决于您使用它的位置。
Carbon::parse($this->created_at)->format('Y-m-d');
答案 2 :(得分:0)
尝试
{{ $this->created_at->format('Y-m-d') }}
您不应该需要它,但如果仍然是字符串,您可以更新您的模型:
protected $dates = ['created_at'];
答案 3 :(得分:0)
strtotime()
将您的字符串转换为时间戳格式,因此可以尝试这样:
{{ date('Y-m-d', strtotime($this->created_at->date)) }}