首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

PHP 時區設定問題完整解決指南

     編輯:PHP 相關知識

安裝 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 全域設定

找到 php.ini 中的 date.timezone 指令,設定為:

date.timezone = PRC

修改後需重啟 Web 伺服器生效。這種方式適合專案部署環境統一管理時區。

函數詳細說明

date_default_timezone_set (string $timezone_identifier): bool

  • 參數:時區識別碼,如 UTC、Europe/Lisbon、PRC(中國)、Asia/Taipei(台灣)
  • 返回值:永遠回傳 true,即使參數無效
  • 版本需求:PHP 5.1.0 以上
  • 錯誤機制:若時區無效,每次呼叫日期時間函數都會產生 E_NOTICE 錯誤

常用時區識別碼對照表

地區識別碼
中國大陸PRC / Asia/Shanghai
台灣Asia/Taipei
香港Asia/Hong_Kong
新加坡Asia/Singapore
UTC 標準時間UTC

最佳實踐建議

  1. 專案初期統一設定:在框架入口檔案或公共配置檔中集中管理時區
  2. 資料庫儲存策略:建議儲存 UTC 時間戳(time()),前端根據用戶時區動態轉換顯示
  3. 避免硬編碼:不要在業務邏輯中散落多處 date_default_timezone_set() 呼叫

正確處理時區是 PHP 開發的基礎功夫,掌握上述方法可徹底解決時間顯示錯誤問題。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved