webman数据库获取时间时区问题

hbynlsl

问题描述

使用模型类获取的数据返回json时,会自动序列化,但是序列化的结果中,时间数据会差8个小时。
config/app.php 配置文件中已经设置 'default_timezone' => 'Asia/Shanghai' 。
必须在模型类中 重写 serializeDate 方法 才可以正常序列化时间。
protected function serializeDate(DateTimeInterface $date)
{
// 直接指定格式,不依赖 $dateFormat
return $date->setTimezone('Asia/Shanghai')->format('Y-m-d H:i:s');
}

使用 Db::table('...')->all(); 获取的时间是没有问题的,模型类出问题。

请问有没有简写方法呢?或者,我这个应该如何配置呢?

79 1 0
1个回答

six

level-orm就那样,laravel官方考虑到跨时区项目,默认返回的是带时区的日期,日期里多了一个T字符,少了8小时。
要么自己服务端转换,要么前端把带时区的时间转为浏览器的所在时区时间。

  • 暂无评论
🔝