安裝 PHP 5 後,許多開發者會發現一個常見問題:使用 date() 函數輸出的時間與本地時間不符。這是因為 PHP 預設使用格林威治標準時間(GMT),若未在程式碼或設定檔中明確指定時區,就會導致時間偏差——例如北京時間比 GMT 早 8 小時。
在 PHP 檔案開頭使用 date_default_timezone_set() 函數:
<?php
date_default_timezone_set('PRC'); // 設定為中國標準時間
echo date('Y-m-d H:i:s');
?>
執行後輸出的時間將與伺服器本地時間一致。注意:date() 格式字串中的 H(24 小時制)必須大寫,否則可能導致資料庫寫入錯誤。
找到 php.ini 中的 date.timezone 指令,設定為:
date.timezone = PRC
修改後需重啟 Web 伺服器生效。這種方式適合專案部署環境統一管理時區。
date_default_timezone_set (string $timezone_identifier): bool
UTC、Europe/Lisbon、PRC(中國)、Asia/Taipei(台灣)true,即使參數無效E_NOTICE 錯誤| 地區 | 識別碼 |
|---|---|
| 中國大陸 | PRC / Asia/Shanghai |
| 台灣 | Asia/Taipei |
| 香港 | Asia/Hong_Kong |
| 新加坡 | Asia/Singapore |
| UTC 標準時間 | UTC |
time()),前端根據用戶時區動態轉換顯示date_default_timezone_set() 呼叫正確處理時區是 PHP 開發的基礎功夫,掌握上述方法可徹底解決時間顯示錯誤問題。