【问题标题】:Setting date format using Laravel使用 Laravel 设置日期格式
【发布时间】:2020-07-01 08:47:49
【问题描述】:

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

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

下面是我的控制器验证码

   $request->validate([

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

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

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

如何设置日期格式?

【问题讨论】:

  • @TsaiKoga 不能设置成'm-d-Y'
  • @TsaiKoga,我收到了这条消息日期与 d-m-Y 格式不匹配
  • 是的,我收到“SQLSTATE[22007]:日期时间格式无效:1292 日期值不正确”
  • MySQL 的默认日期格式是Y-m-d,你尝试添加d-m-Y,这就是这个错误试图告诉你的。将数据插入数据库时​​,将格式改回Y-m-d
  • 我已经检查了源代码,DateTime::createFromFormat('!d-m-Y', "20-03-2020")->format('d-m-Y') == "20-03-2020"; return true。所以验证通过。我认为kerbholz是对的。您需要发布表格列的类型。

标签: php laravel date


【解决方案1】:

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

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

protected $dates = ['myproperty'];

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

【讨论】:

    猜你喜欢
    • 2018-07-17
    • 2012-12-28
    • 2018-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-28
    • 1970-01-01
    相关资源
    最近更新 更多