2013-10-31 109 views
2

我用UNIX時間廣泛地在我的腳本,通常設置我的時區,如下所示:PHP UTC時區

date_default_timezone_set('Europe/London'); 

這一直工作正常,直到時鐘又回到上週末的一個小時,我懷疑這與美國時鐘尚未迴歸並且在即將到來的週末之前不會做的事實有關。

我可以通過將時區設置爲UTC來解決此問題,但爲什麼歐洲/倫敦設置無法正常工作。就我所知,我的服務器位於英國。

謝謝,

Alan。

+0

你的腳本是什麼?它是否根據用戶區域計算? –

+0

的可能的複製[UNIX時間戳(0):歐洲/倫敦返回UTC + 1](http://stackoverflow.com/questions/14911078/unix-timestamp0-europe-london-returns-utc1)。 –

回答

3

Europe/LondonUTC不是同一個時區。英國觀察夏令時,因此在半年時間內,時區偏移量爲UTC + 1。上週末,夏令時在歐洲結束。

但是,我懷疑你沒有正確使用Unix時間。在PHP中,如果時鐘設置正確,則time()總是返回當前的Unix時間戳,而不管時區。如果您的時間戳已經跳過了一個小時,那麼您可能將當地時間解釋爲UTC時間。

請注意,如果您指定時區,則應始終指定您打算使用的時區。如果您想使用UTC,請指定UTC。如果您想使用在英國使用的時區,請指定Europe/London。如果英國因某些原因改變了他們的時區或DST規則,Europe/London將隨着這些更改而更新。

+0

謝謝你......你的回答很有道理我會繼續在這裏調查 –