使用 Laravel 开发 API 接口过程中,返回的 JSON 数据中时间字符串带有 TZ(标准世界时)字符,格式如下:
{
"id": 1,
"created_at": "2020-06-08T07:31:02.000000Z",
"updated_at": "2020-06-20T10:03:36.000000Z"
}
TZ 是什么?
T 表示分隔符,Z 表示的是 UTC。 UTC:世界标准时间,在标准时间上加上8小时,即东八区时间,也就是北京时间。
解决办法
通过在模型中定义 serializeDate
方法,你可以自定义所有模型日期的默认序列化格式。此方法不会影响日期在数据库中存储的格式:
use DateTimeInterface;
/**
* 为 array / JSON 序列化准备日期格式。
*/
protected function serializeDate(DateTimeInterface $date): string
{
return $date->format('Y-m-d');
}