發現一個問題 date("Y-m-d G:i T",time()) 取出來的時間和本地時間老差8個小時,可
個人系統明明是中國
標準時(GMT+8),最後終於找到了問題所在: php
原來從php5.1.0開始,php.ini里加入了date.timezone這個選項,默認狀況下是關閉的 apache
也就是顯示的時間(不管用什麼php命令)都是格林威治標準時間 .net
和咱們的時間(北京時間)差了正好8個小時,有如下3中方法能夠恢復正常的時間。 ip
1,最簡單的方法就是不要用php5.1以上的版本 get
2,若是必定要用,並且不能修改php.ini,則須要在關於時間的初始化的語句的
上面加上 date_default_timezone_set (XXX); date
3,一勞永逸,僅限能修改php.ini。打開php.ini查找date.timezone 去掉前面的分號
= 後面加XXX,重啓http服務(如apache2或iis等)便可 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上查到更多的地區 程序
因爲程序最後仍是會把地名轉爲時區來計算,因此當你使用的不是內置的區域的時候,程序將
自動使用格林威治標 方法
PHP.INI im
;時區設置
date.timezone=Asia/Shanghai
<?php
//ini_set('date.timezone','Asia/Shanghai');若是PHP.INI沒有指定,在此位臨時聲明也能夠
echo date("Y-m-d H:i:s", time());
echo "<br>";
//倒計時. echo (time()-strtotime('2008-6-22 17:16:00'))/(60*60*24);