laravel8 時區設定無效解決辦法

declandragon發表於2022-04-15

問題

資料庫內的時間是正常的,讀取出來之後少了 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:

相關文章