使用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的时区信息为截图,查看了服务器上面的时区信息为截图
531 2 0
2个回答

初试

可以这样解决,但是还是有疑惑为什么存入的时区为UTC
/**

  • 为数组 / JSON序列化准备一个日期
  • @param \DateTimeInterface $date
  • @return string
    */
    protected function serializeDate(DateTimeInterface $date)
    {
    return $date->format('Y-m-d');
    }
  • 暂无评论
古树

确实存在这个问题;

  • 暂无评论
×
🔝