首页 > 解决方案 > 使用 Laravel 设置日期格式

问题描述

我正在尝试将日期格式设置为 (dmY),但错误消息如下所述:

SQLSTATE [22007]:无效的日期时间格式:1292 不正确的日期值:'20-03-2020'

下面是我的控制器验证代码

   $request->validate([

       'date' => 'required|date_format:d-m-Y',    
   ]);

我还尝试在我的模型中设置格式,这也是徒劳的

protected $dateFormat = 'd-m-Y';

如何设置 date_format?

标签: phplaraveldate

解决方案


根据文档,$dateFormat模型上的设置“决定了日期属性在数据库中的存储方式”。将其设置为与数据库的日期格式冲突的值当然会导致您看到的 SQL 错误。所以别管它。

将属性添加到数组$dates确保它在设置时自动转换为 Carbon 对象,并在保存时正确格式化:

protected $dates = ['myproperty'];

这是透明的,因为 Carbon 接受d-m-Y作为创建对象的格式。


推荐阅读