php時區設定老差8個小時解決辦法

2021-05-12 07:03:01 字數 1230 閱讀 8355

發現乙個問題 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 (***);

3,一勞永逸,僅限能修改php.ini。開啟php.ini查詢date.timezone 去掉前面的分號

= 後面加***,重啟http服務(如apache2或iis等)即可

關於***,大陸內地可用的值是:asia/chongqing ,asia/shanghai ,asia/urumqi (依次為重

慶,上海,烏魯木

齊) 港台地區可用:asia/macao ,asia/hong_kong ,asia/****ei (依次為澳門,香港,台北)

還有新加坡:asia/singapore

老外好像把北京漏調了

其他可用的值是:etc/gmt-8 ,singapore ,hongkong ,prc

prc是什麼?prc是中華人民共和國啊-_-

以上都是我從php官方說明檔裡整理出來的gmt-8下面的地區,可能會有遺漏

你可以http://www.php.net/docs.php上查到更多的地區

由於程式最後還是會把地名轉為時區來計算,所以當你使用的不是內建的區域的時候,程式將

自動使用格林威治標

php.ini

;時區設定

date.timezone=asia/shanghai

<?php

//ini_set('date.timezone','asia/shanghai');如果php.ini沒有指定,在此位臨時宣告也可以

echo date("y-m-d h:i:s", time());

echo "

";//倒計時.

echo (time()-strtotime('2008-6-22 17:16:00'))/(60*60*24);

php時區設定老差8個小時解決辦法

發現乙個問題 date y m d g i t time 取出來的時間和本地時間老差8個小時,可 我的系統明明是中國 標準時 gmt 8 最後終於找到了問題所在 原來從php5.1.0開始,php.ini裡加入了date.timezone這個選項,預設情況下是關閉的 也就是顯示的時間 無論用什麼ph...

php時區設定老差8個小時解決辦法

發現乙個問題 date y m d g i t time 取出來的時間和本地時間老差8個小時,可 我的系統明明是中國 標準時 gmt 8 最後終於找到了問題所在 原來從php5.1.0開始,php.ini裡加入了date.timezone這個選項,預設情況下是關閉的 也就是顯示的時間 無論用什麼ph...

php時區設定老差8個小時解決辦法

發現乙個問題 date y m d g i t time 取出來的時間和本地時間老差8個小時,可 我的系統明明是中國 標準時 gmt 8 最後終於找到了問題所在 原來從php5.1.0開始,php.ini裡加入了date.timezone這個選項,預設情況下是關閉的 也就是顯示的時間 無論用什麼ph...