PHP中date()函數取得時間錯誤解決方案

來源:互聯網
上載者:User


通過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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.