PHP 5.1.0 起引入 date.timezone 設定,預設關閉導致時間顯示為格林威治標準時間(GMT),與北京時間相差 8 小時。許多開發者在設定時發現官方文檔未列出 "PRC" 等簡寫,僅支援 "Asia/Shanghai" 等完整格式,且 XAMPP 環境下修改 php.ini 常不生效。
PHP 使用 IANA 時區資料庫格式,常用中文區域設定:
| 設定值 | 對應地區 |
|---|---|
| Asia/Shanghai | 上海(推薦,含北京時間) |
| Asia/Chongqing | 重慶 |
| Asia/Urumqi | 烏魯木齊 |
| Asia/Hong_Kong | 香港 |
| Asia/Macao | 澳門 |
| Asia/Taipei | 台北 |
| PRC | 中華人民共和國(別名,等同 Asia/Shanghai) |
說明: "PRC" 雖不在官方標準列表中,但 PHP 內建支援作為 "Asia/Shanghai" 的別名,可正常使用。
php.ini 檔案位置;date.timezone =; 啟用設定date.timezone = Asia/ShanghaiXAMPP 將 PHP 設定檔放在 apache/bin/php.ini,而非 php 目錄下。修改錯誤檔案是導致不生效的主因。
# XAMPP 典型路徑
C:\xampp\apache\bin\php.ini ← 正確位置
C:\xampp\php\php.ini ← 錯誤位置(僅 CLI 使用)
<?php
echo date('Y-m-d H:i:s'); // 輸出應為本地時間
echo ini_get('date.timezone'); // 確認設定生效
?>