laravel8 时区设置无效解决办法

问题

数据库内的时间是正常的,读取出来之后少了 8 小时

类似的问题

问答:Laravel9时区设置无效

上下文

根据评论区的疑问补充一些信息

  • 系统环境:win 10
  • 数据库版本:MySQL 5.7
  • 字段设置
`created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  • 使用 navicat、heidisql 以及写 PDO 查询出来数据是一样的

处理过程

看了很多教程,都是只需要改 timezone,设置成 PRC 或者是 Asia/Shanghai 就好了,我这边测试是还需要一起设置 DB_TIMEZONE 才可以。

解决方案

  • config/app.php
'timezone' => env('APP_TIMEZONE','PRC'),
  • config/database.php
'mysql' => [
    'timezone' => env('DB_TIMEZONE', '+08:00'),
],
本作品采用《CC 协议》,转载必须注明作者和本文链接
感谢阅读,有收获的话不妨点个赞:smiling_imp:
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 9
chowjiawei

设置完成后 把数据库已有的时间去掉 或者 新数据插入 再去看下

2年前 评论
declandragon (楼主) 2年前
chowjiawei (作者) 2年前
declandragon (楼主) 2年前
chowjiawei (作者) 2年前
declandragon (楼主) 2年前

有没有这种可能,是因为你服务器的系统时间的问题,然后数据库的timestamp字段就变了呢?

2年前 评论
declandragon (楼主) 2年前
阿珂 (作者) 2年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!