http://bbs.chinahtml.com/showthread.php?s=63664bee85f19da15a67f991bef88393&p=312345
幾天發現一個問題 date("Y-m-d G:i T",time()) 取出來的時間和本地時間老差8個小時,可我的系統明明是中國标準時(GMT+8),最後終于找到了問題所在:
原來從php5.1.0開始,php.ini裡加入了date.timezone這個選項,預設情況下是關閉的
也就是顯示的時間(無論用什麼php指令)都是格林威治标準時間
和我們的時間(中原標準時間)差了正好8個小時,有以下3中方法可以恢複正常的時間。
1,最簡單的方法就是不要用php5.1以上的版本
2,如果一定要用,而且不能修改php.ini,則需要在關于時間的初始化的語句的
上面加上 date_default_timezone_set (XXX);
3,一勞永逸,僅限能修改php.ini。打開php.ini查找date.timezone 去掉前面的分号
= 後面加XXX,重新開機http服務(如apache2或iis等)即可
關于XXX,大陸内地可用的值是:Asia/Chongqing ,Asia/Shanghai ,Asia/Urumqi (依次為重慶,上海,烏魯木齊)
港台地區可用:Asia/Macao ,Asia/Hong_Kong ,Asia/Taipei (依次為澳門,香港,台北)
還有新加坡:Asia/Singapore
老外好像把北京漏調了
其他可用的值是:Etc/GMT-8 ,Singapore ,Hongkong ,PRC
PRC是什麼?PRC是中華人民共和國啊-_-
以上都是我從php官方說明檔裡整理出來的GMT-8下面的地區,可能會有遺漏
你可以http://www.php.net/docs.php上查到更多的地區
由于程式最後還是會把地名轉為時區來計算,是以當你使用的不是内置的區域的時候,程式将自動使用格林威治标準時間