我有一张桌子,我通过datepicker以日期格式存储数据。在存储日期时我正在做这样的事情:
$data['schedule'] = Carbon::parse($request->schedule)->toDateTimeString();
然后在模型中我定义如下:
protected $dates = [
'schedule', 'created_at', 'updated_at', 'deleted_at'
];
现在,在检索日期时我正在使用diffForHumans()
这样的日期:
$event->schedule = $event->schedule->diffForHumans();
但它会抛出这样的错误:
找不到两位数的月份。数据缺失
我检查了mySQL数据库的格式,我的日期是这样的:
2017-07-02 14:38:23
修改
以前我在表格中存储日期时遇到问题,请参阅How to format date receiving through Vuejs Datepicker in laravel了解详细说明。它抛出错误:
日期时间格式无效:1292日期时间值不正确:'2017-05-04T18:30:00.000Z'代表第1行的“时间表”
所以我选择在将Carbon::parse
存储到数据库中时使用它。
如何解决这个问题,帮助我。
感谢。
答案 0 :(得分:3)
尝试使用模型中的存取方法。
public function getScheduleAttribute($value)
{
return Carbon::parse($value)->diffForHumans();
}
并以
的形式访问该属性$event->schedule;
答案 1 :(得分:2)
尝试设置日期时间格式('Y-m-d H:i:s')
并运行