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:
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 9
chowjiawei

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

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

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

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

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