Laravel7 Model 返回时间格式及时区不正确
环境Laravel7+PHP7.3.8
php.ini时区正确(Asia/Shanghai)、Laravel时区也正确(RPC)、数据库中存储的时间戳正确。
当使用Model查询时,返回的时间为UTC时间
$member = Member::firstOrCreate($where, $data);
return \Response::json($member);
{
"msg": "",
"data": {
"edittime": "2020-03-30T02:37:31.000000Z",
"regtime": "2020-03-30T02:37:31.000000Z",
},
"code": 1
}
使用tinker交互返回的正确时间(正确情况应该如下)
(base) ➜ dlf ✗ php artisan tinker
Psy Shell v0.10.2 (PHP 7.3.8 — cli) by Justin Hileman
>>> Carbon\Carbon::now();
=> Carbon\Carbon @1585536738 {#3083
date: 2020-03-30 10:52:18.609379 Asia/Shanghai (+08:00),
timezone_type: 3,
timezone: "Asia/Shanghai",
}
>>> echo date('Y-m-d H:i:s', time());
2020-03-30 10:52:21⏎
>>>
返回的时区不对,目前可以用修改器解决,但是感觉不很繁琐,修改器意味着只要返回时间都要加修改器。
Laravel7时间格式为ISO-8601,
在你的模型文件中指定格式