【问题标题】:Set input default date format for dates in a model为模型中的日期设置输入默认日期格式
【发布时间】:2017-12-21 22:14:57
【问题描述】:

有没有办法在模型中设置输入日期的默认日期格式?

我需要创建一个以 JSON 格式接收的数据和日期格式为 Y-m-dTH:i:sP 的模型,但数据库中的日期以默认的 Y-m-d H:i:s 格式存储。我在模型的$dates 属性中添加了所有日期字段,但是现在当我创建模型时,在构造函数中设置所有参数,如下所示:

$model = new Model($params);

我收到 Carbon 转换错误 (InvalidArgumentException),因为它尝试从 Y-m-d H:i:s 格式创建 Carbon 对象。

我知道Date mutators,但如果我设置了

protected $dateFormat = "Y-m-d\TH:i:sP";

它正确地创建了 Carbon 对象,但我在存储到数据库时遇到了错误,因为它尝试使用该格式存储记录。

是否有一种标准方法可以在不转换每个日期参数的日期格式的情况下实现我的需要?

【问题讨论】:

  • 只需调用toDateTimeString() 所以它是一个字符串而不是一个对象?

标签: laravel laravel-5.4 php-carbon


【解决方案1】:
//date format = Y-m-dTH:i:sP
$date = '2011-09-16T11:38:23-05:00';
$new_date = date_format(date_create($date), 'Y-m-d H:i:s');

【讨论】:

  • 这不是默认设置,我必须为每个日期字段重复代码
猜你喜欢
  • 1970-01-01
  • 2020-03-25
  • 1970-01-01
  • 2022-12-05
  • 1970-01-01
  • 2021-01-07
  • 2020-07-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多