我在数据库中创建了自己的时间戳(在updated_at和amp_ created_at旁边),并用播种器填充。示例数据如下所示:
| id |user|start_at (my timetable)| | created_at | updated_at
| 194 | 47 | 2015-01-21 00:00:00 | | 2016-09-25 16:48:48 | 2016-09-25 16:48:48 |
我也加入了我的模型:
public function getCreatedAtAttribute($date)
{
return Carbon::createFromFormat('Y-m-d H:i:s', $date);
}
public function getUpdatedAtAttribute($date)
{
return Carbon::createFromFormat('Y-m-d H:i:s', $date);
}
public function getStartAtAttribute($date)
{
return Carbon::createFromFormat('Y-m-d H:i:s', $date);
}
现在我尝试使用我的控制器:
$val->updated_at->diffForHumans(); // works
$val->created_at->format('d M Y'); // works
$val->start_at->format('d M Y'); // doesn't work
当我var_dump
时:
start_at:
public 'date' => string '2016-10-12 00:00:00.000000' (length=26)
public 'timezone_type' => int 3
public 'timezone' => string 'UTC' (length=3)
created_at:
+"date": "2016-09-25 16:48:48.000000"
+"timezone_type": 3
+"timezone": "UTC"
更新:现在我添加了protected $dates = ['start_at']
dd($val->start_at); // gives '2014-08-03 00:00:00'
dd($val->start_at->format('d M Y') // fails
错误:
发现意外数据。 找不到分隔符号 数据缺失
答案 0 :(得分:2)
将start_at添加到模型的$ dates属性中。您需要为created_at或updated_at属性编写自定义setter或getter。
protected $dates = [
'start_at',
];
答案 1 :(得分:0)
提到start_at为carbon inastamce。
在您的模型中添加以下代码
{{1}}
希望这会奏效。