問題:
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正确。