在 Linux 上使用 PHP 架設系統時,被應用程式提醒:「PHP配置中沒有 date.timezone 設定,系統將預設時區設定為 UTC。但我們建議你自行設定此時區。」

經查後發現,原來自從 PHP 5 版本開始,便不再預設時區(data.timezone),導致程式都以 UTC(世界協調時間(Coordinated Universal Time))為準,也就是 GMT+0。

如此一來,對於東亞洲地區(中華民國以臺灣島上的首都臺北時區為準)的我們來說,在執行會使用到 date 相關函式的應用程式時,都會少了 8 個小時。

如何修改 PHP date.Timezone?

透過 command 指令,或是 panel 操控面板,找到對應的 PHP 配置表。一般來說主要是「php.ini」這個檔案,但根據操作系統的使用方式可能有些微不同。

下列設定就是 PHP 原始資料的 [date] 欄位,大家可直接查詢 timezone 關鍵字快速查找:

[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
;date.timezone =

接著,將「;date.timezone =」修改為正確時區「date.timezone = “Asia/Taipei”」,再重新啟動 Apache 伺服器即可完成設定。

第二種設定 PHP Timezone 的方法

另外,如果你使用的是共享主機,例如 Bluehost。可能系統權限不允許你修改底層的 PHP.INI,這時候就可以在程式裡輸入下列指令,一樣可以修改正確時區:

date_default_timezone_set("Asia/Taipei")

唯一要注意的是,這種方法只適用特定應用程式,也就是說如果你有兩套獨立程式在跑,便需要分別設置!

分享您的想法

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *