laravel8 时区设置无效解决办法
问题
数据库内的时间是正常的,读取出来之后少了 8 小时
类似的问题
上下文
根据评论区的疑问补充一些信息
- 系统环境: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 协议》,转载必须注明作者和本文链接
设置完成后 把数据库已有的时间去掉 或者 新数据插入 再去看下
有没有这种可能,是因为你服务器的系统时间的问题,然后数据库的timestamp字段就变了呢?