PHP 5.3+ 強制要求設定時區,否則所有時間函式拋出 E_WARNING。本文整理三種設定方式並釐清時區識別字元。
PHP Warning: date(): It is not safe to rely on the system's timezone settings.
You are *required* to use the date.timezone setting or the date_default_timezone_set() function.
date_default_timezone_set('PRC'); // 或 'Asia/Shanghai'
echo date('Y-m-d H:i:s');
ini_set('date.timezone', 'Asia/Shanghai');
date.timezone = PRC
| 識別字元 | 說明 | 適用地區 |
|---|---|---|
| PRC | People's Republic of China | 中國大陸 |
| Asia/Shanghai | 標準 IANA 時區 | 上海/北京時間 (UTC+8) |
| Asia/Chongqing | 別名 | 重慶/北京時間 |
| Asia/Taipei | 台灣標準時間 | 台北 (UTC+8) |
| Asia/Hong_Kong | 香港時間 | 香港 (UTC+8) |
| UTC | 世界標準時間 | 通用 |
time() + 8*3600 僅適用固定 UTC+8,無法處理夏令時地區。php.ini 生效(php -i | grep date.timezone)。專案入口檔第一行寫死 date_default_timezone_set('Asia/Shanghai'),不依賴伺服器環境,部署零配置。