在 Laravel 9 中,默认情况下,时间戳都将以 ‘Y-m-d H:i:s’ 形式格式化。

那么要如何修改默认的日期格式呢?我们可以通过修改器或者属性转换等方法来自定义时间戳格式,比如自定义 Term 模型的 start_date 字段的日期格式为 ‘m-d,Y’ :

修改器方式

在模型中添加:

public function getStartDateAttribute($value) {
    return CarbonCarbon::parse($value)->format('m-d,Y');
}

调用:

$term->start_date;//输出11-30,2021

属性转换方式

在模型中添加:

protected $casts = [
    'start_date' => 'date:Y-m-d',
];

调用:

$term->start_date;//输出11-30,2021

如果要自定义所有模型日期的默认序列化格式,那么可以通过在模型中定义 serializeDate 方法。此方法不会影响日期在数据库中存储的格式:

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