php中的date函式中時區問題

2021-06-27 12:15:19 字數 775 閱讀 1725

用php的朋友都可能遇到過這種情況。date("y-m-d h:i:s") 總和伺服器時間相差幾個

小時。網上查了才知道,原來從php5.1.0開始,php.ini裡加入了date.timezone這個選

項,預設情況下是關閉的,也就是顯示的時間(無論用什麼php命令)都是格林威治標

準時間,所以才會有這個情況發生,

解決方法如下: 

一、在頁頭使用date_default_timezone_set()設定我的預設時區為北京時間

date_default_timezone_set('prc');

echo date('y-m-d h:i:s');

時間和伺服器當前時間一樣了!!

二、修改php.ini。

開啟php5.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下面的地區,可能會有遺漏。

PHP中date函式的選項說明

date 將伺服器的時間格式化 語法描述為string date string format,int timestamp 返回值的資料型別是字串。函式說明 返回值的字串按配置的格式決定。字串格式化的選項如下 a am 或是 pm a am 或是 pm d 幾日,兩位數字,若不足則補零 從 01 至 ...

PHP中的Date 函式詳細講解

1,年 月 日 echo date y m j 2007 02 6 echo date y n j 07 2 6 大寫y表示年四位數字,而小寫y表示年的兩位數字 小寫m表示月份的數字 帶前導 而小寫n則表示不帶前導的月份數字。echo date y m j 2007 feb 6 echo date ...

php中date 函式使用的方法

a am 或是 pm a am 或是 pm d 幾日,二位數字,若不足二位則前面補零 如 01 至 31 d 星期幾,三個英文本母 如 fri f 月份,英文全名 如 january h 12 小時制的小時 如 01 至 12 h 24 小時制的小時 如 00 至 23 g 12 小時制的小時,不足...