PHP 5.1+ 預設使用 UTC 時區,若未設定時區,date() 輸出會比北京時間少 8 小時。本文提供三種設定時區的方法。
echo date('Y-m-d H:i:s'); // 輸出 02:32:17
// 實際北京時間 10:32:17
<?php
date_default_timezone_set('Asia/Shanghai'); // 或 PRC、Asia/Chongqing
echo date('Y-m-d H:i:s'); // 正確輸出北京時間
?>
<?php
ini_set('date.timezone', 'Asia/Shanghai');
echo date('Y-m-d H:i:s');
?>
; 找到 date.timezone 行,去掉前面分號並設定
date.timezone = "Asia/Shanghai"
; 或
date.timezone = "PRC"
Asia/Shanghai、Asia/Chongqing、PRC:中國標準時間(UTC+8)Asia/Taipei:台灣時間(同 UTC+8)Asia/Hong_Kong:香港時間UTC:世界標準時間echo date('Y-m-d H:i:s', time() + 8*3600); // 粗暴但有效,不處理夏令時
在專案入口檔(如 common.php、bootstrap.php)最開頭呼叫 date_default_timezone_set('Asia/Shanghai'),確保全專案一致,且不依賴伺服器 php.ini 設定。