天天看點

關于php5.*後的時區問題 date_default_timezone_set ();

問題:

php函數date("Y-n-d H-i-s"); 輸出的時間與當地時間相差8個小時.

解決思路:

中原標準時間是東8區,可能是時區問題.但是此前都沒問題啊,經過google發現原來從php5.1.0開始,php.ini裡加入了 date.timezone這個選項,預設情況下是關閉的,也就是顯示的時間(無論用什麼php指令)都是格林威治标準時間,和我們的時間(中原標準時間)差 了正好8個小時。

知道了問題,當然就要解決了,

1、可以date_default_timezone_set ('Etc/GMT-8');

紅色标記部分可以改為"Etc/GMT-8","PRC"這兩個在php幫助手冊->附錄 H. 所支援時區清單->其它時區清單裡。

紅色标記部分也可以改為"Asia/Shanghai","Asia/Chongqing","Asia/Urumqi"這三個在php幫助手冊->附錄 H. 所支援時區清單->亞洲時區清單裡

測試

date_default_timezone_set ('Asia/Shanghai');

echo date_default_timezone_get ();

echo date("Y-n-d H-i-s");

輸出結果:2007-4-21 10-28-25正确。

2、上面的修改是通過腳本修改,優點就是可移植性好,缺點就是每個腳本都要加。我們也可以通過修改php.ini的配置來達到目的。打開php.ini查 找date.timezone 去掉前面的分号,等号後面填上上面紅色标記的字段。修改結果是date.timezone ="Etc/GMT-8"

echo date("Y-n-d H:i:s");

輸出結果:2007-10-21 10:30:35正确。