【发布时间】:2017-07-03 08:14:46
【问题描述】:
我有一个表格,我通过 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 日期时间值不正确:第 1 行的“计划”列的“2017-05-04T18:30:00.000Z”
所以我选择使用Carbon::parse,同时将其存储在数据库中。
如何解决,帮帮我。
谢谢。
【问题讨论】:
-
问题是你已经在 $data['schedule'] 之前更改了格式,将其注释掉并检查
-
@Exprator 如果我不使用
Carbon::parse...那么它不接受表中的值 -
如果在
$data['schedule']之前执行dd($request->schedule);会得到什么? -
好的,因此您需要在碳中访问日期时间时对其进行格式化,就像您在数据库中的格式一样
-
@Exprator 是的,你可以说我正在寻找访问者。
标签: php laravel laravel-5.4 php-carbon