如何在Laravel 7中设置全局的Carbon格式?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在Laravel 7中设置全局的Carbon格式?相关的知识,希望对你有一定的参考价值。

我刚刚升级了我的Laravel应用程序从 6.x7.x 和我有问题 与日期日期戳。我知道一些事情改变了关于这一点。

我试图设置一个默认的 Carbon 的格式。我有一些自定义的 timestamp 我的数据库中的字段,是这样创建的。

$table->timestamp('published_at')->nullable();

升级后我开始收到以下错误,每当这些字段被更新的时候

Invalid datetime format: 1292 Incorrect datetime value: '2020-04-04T11:00:00.000Z' for column 'published_at'

我试着在每个字段上使用建议的方法 model:

protected function serializeDate(DateTimeInterface $date)
{
    return $date->format('Y-m-d H:i:s');
}

但是这个方法从来没有被调用过,也就无法工作。

然而,设置一个突变器却能正常工作。

public function setPublishedAtAttribute($value)
{
    $this->attributes['published_at'] = Carbon::parse($value)->format('Y-m-d H:i:s');
}

但我想避免这些字段的重复代码。总共有14个字段需要创建这些突变器, 所以我想知道是否有更好的方法?

答案

好吧,我想通了。我只是不得不添加这些时间戳

protected $dates = [];

以上是关于如何在Laravel 7中设置全局的Carbon格式?的主要内容,如果未能解决你的问题,请参考以下文章

如何在模型 laravel 中设置固定位置查询

Laravel - 需要从模型中访问 BaseController 中设置的全局变量

Laravel 7:为啥我的会话 cookie 没有在浏览器中设置?

如何在验证 laravel 中设置比较日期时间?

如何在 DataSet 中设置单元格?帮助!

如何在 Laravel 中设置会话超时?