PHP 5.1 版本起強制要求設置默認時區,否則會觸發 E_WARNING。本文匯總三種設置方法與驗證方式。
date.timezone 行;date.timezone = Asia/Shanghai<?php
// 必須在任何日期時間函數調用前執行
date_default_timezone_set("Asia/Shanghai");
// 推薦放在項目入口文件或公共配置文件最頂部
?>
常用中國時區標識符:
Asia/Shanghai(北京時間,推薦)Asia/ChongqingAsia/HarbinPRC(中國別名)ini_set('date.timezone', 'Asia/Shanghai');
<?php
phpinfo();
// 在 Date 區塊查找 "Default timezone" 值
?>
或直接輸出:
echo date_default_timezone_get(); // 輸出如:Asia/Shanghai
echo date('Y-m-d H:i:s'); // 直接看時間是否正確
print_r(DateTimeZone::listIdentifiers());
config/app.php、ThinkPHP config.php)| 現象 | 原因 | 解決 |
|---|---|---|
| 時間相差 8 小時 | 默認 UTC 時區 | 設置 Asia/Shanghai |
| Warning: date()... timezone settings | 未設置時區 | 任意方法設置即可 |
| 設置無效 | php.ini 修改未重啟服務 | 重啟 php-fpm/apache |
正確的時區配置是日期時間處理的基石,建議在項目初始化階段統一解決。