通過date()函數獲取時間后,發現小時時間不對,比現在的時間小8個小時,無論用H,還是用h都一樣,這個是因為當前獲取的是格林威治時間,與北京時間相差8小時。
解決方法如下:
1、修改php.ini配置文件
打開php.ini文件,一般在php配置根目錄下,找到其中的 ;date.timezone,刪掉前面的分號,并改為date timezone = PRC。保存,重啟Apahce服務即可(有時用restart會有問題,先stop然后start就行了)。
2、加上date_default_timezone_set(timezone_identifier)函數
這個函數的意思是,設置當前時區,對時間進行初始化,在頁頭或獲取時間語句前加上這句話。
例如:
date_default_timezone_set(PRC);
echo date("Y-m-d H-i-s");
參數如下設置:
date_default_timezone_set(PRC) –設置為北京時間,PRC代表中華人民共和國
date_default_timezone_set(‘Asia/Shanghai’) –設置為上海時間,大陸可用的還有‘Chongqi’(重慶)、‘Urumqi’(烏魯木齊)同樣可以的
港臺地區可用:Asia/Macao ,Asia/Hong_Kong ,Asia/Taipei (依次為澳門,香港,臺北)
新加坡地區:Asia/Singapore (好像就是沒看到北京的)
此函數永遠會返回True,但一定要輸入timezone_identifier,不然會報錯。
下面是所有的時區標識符:(供大家參考):
- CET
- CST6CDT
- Cuba
- EET
- Egypt
- Eire
- EST
- EST5EDT
- Etc/GMT
- Etc/GMT+0
- Etc/GMT+1
- Etc/GMT+10
- Etc/GMT+11
- Etc/GMT+12
- Etc/GMT+2
- Etc/GMT+3
- Etc/GMT+4
- Etc/GMT+5
- Etc/GMT+6
- Etc/GMT+7
- Etc/GMT+8
- Etc/GMT+9
- Etc/GMT-0
- Etc/GMT-1
- Etc/GMT-10
- Etc/GMT-11
- Etc/GMT-12
- Etc/GMT-13
- Etc/GMT-14
- Etc/GMT-2
- Etc/GMT-3
- Etc/GMT-4
- Etc/GMT-5
- Etc/GMT-6
- Etc/GMT-7
- Etc/GMT-8
- Etc/GMT-9
- Etc/GMT0
- Etc/Greenwich
- Etc/UCT
- Etc/Universal
- Etc/UTC
- Etc/Zulu
- Factory
- GB
- GB-Eire
- GMT
- GMT+0
- GMT-0
- GMT0
- Greenwich
- Hongkong
- HST
- Iceland
- Iran
- Israel
- Jamaica
- Japan
- Kwajalein
- Libya
- MET
- MST
- MST7MDT
- Navajo
- NZ
- NZ-CHAT
- Poland
- Portugal
- PRC
- PST8PDT
- ROC
- ROK
- Singapore
- Turkey
- UCT
- Universal
- UTC
- W-SU
- WET
新聞熱點
疑難解答