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

PHP 時區設置完全指南:三種方法解決時間偏移 8 小時問題

     編輯:PHP 綜合知識

PHP 5.1+ 要求顯式設置時區,否則默認 UTC 導致時間偏移(中國地區相差 8 小時)。提供三種設置方法及常用時區標識符。

現象與原因

echo date("Y-m-d H:i:s"); // 輸出 06:36:06,實際 14:36
// 原因:默認使用 GMT/UTC 時間

三種設置方法

1. 代碼級設置(推薦,項目入口文件)

<?php
date_default_timezone_set('PRC');      // 中國標準時間
// 或
date_default_timezone_set('Asia/Shanghai');
// 或
ini_set('date.timezone', 'Asia/Shanghai');

2. 配置文件級設置(php.ini,永久生效)

; 找到 date.timezone,去掉分號並設置
date.timezone = "PRC"
; 或
date.timezone = "Asia/Shanghai"

修改後重啟 PHP-FPM/Apache 生效。

3. 運行時動態設置(函數調用)

date_default_timezone_set("Etc/GMT");       // 格林威治時間
date_default_timezone_set("Etc/GMT+8");     // 比 GMT 慢 8 小時(注意符號反直覺)
date_default_timezone_set("Etc/GMT-8");     // 比 GMT 快 8 小時

常用亞洲時區標識符

標識符地區
Asia/Shanghai上海
Asia/Chongqing重慶
Asia/Urumqi烏魯木齊
Asia/Hong_Kong香港
Asia/Macao澳門
Asia/Taipei台北
Asia/Singapore新加坡
PRC中華人民共和國(推薦)

驗證代碼

<?php
date_default_timezone_set('PRC');
echo date('Y-m-d H:i:s'); // 應與服務器本地時間一致

函數參考

bool date_default_timezone_set(string $timezone_identifier)
// 返回值:永遠返回 true(即使時區無效)
// PHP 5.1.0+ 時區無效會產生 E_NOTICE
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved