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:
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 9
chowjiawei

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

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

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

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

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