使用laravel orm时区问题,怎么处理
问题描述
在config/app里面配置好了时区('default_timezone' => 'Asia/Shanghai'),
在model层里面写法如下
/**
- 自动维护时间戳
-
- @var string
*/
const CREATED_AT = 'create_time';
const UPDATED_AT = 'update_time';
/**
- 时间戳存储格式
-
- @var string
*/
protected $dateFormat = 'Y-m-d H:i:s';
/**
- 设置表字段类型
-
- @var string[]
*/
protected $casts = [
'id' => 'string',
'create_time' => 'datetime:Y-m-d H:i:s',
'update_time' => 'datetime:Y-m-d H:i:s',
];
新增数据,mysql里面是对的,后查询出来的时间的时区为UTC的,用SHOW VARIABLES LIKE 'time_zone';查询了mysql的时区信息为,查看了服务器上面的时区信息为,
2个回答
可以这样解决,但是还是有疑惑为什么存入的时区为UTC
/**
*/
protected function serializeDate(DateTimeInterface $date)
{
return $date->format('Y-m-d');
}
确实存在这个问题;