前幾天發現一個問題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下面的地區,可能會有遺漏
以上是php 怎麼解決8小時時間差的問題的詳細內容。更多資訊請關注PHP中文網其他相關文章!