2016-04-22 63 views
1

我有問題與PHP strtotime轉換爲不同的時區。 我的代碼很簡單:PHP strtotime timezone

<?php 
date_default_timezone_set("Europe/Bratislava"); 
echo date("H:i",strtotime("20:00 America/New_York")); 
?> 

此代碼返回:02:00。 但它應該返回14:00。

你能幫我解決這個問題嗎?

+2

它是正確的...... –

+0

如果您將「Y m d」添加到日期會發生什麼?也許它讀取20:00作爲別的 – Andreas

回答

10

此代碼返回:02:00。但它應該返回14:00。

不,這是正確的。您將從紐約晚上8點(由於DST導致的UTC-4)轉換爲歐洲/布拉迪斯拉發時區(由於DST,當前UTC + 2)。

所以:

New York: 8pm 
UTC:  Midnight 
Bratislava: 2am 

如果你想從一個歐洲/布拉迪斯拉發時間轉換爲紐約的時候,那麼你就需要切換時區的ID。

+0

紐約是UTC-5,布拉迪斯拉發是UTC + 1 –

+2

@MateiMihai:不在夏天。 DST爲每個人增加一個小時。 –

+0

謝謝您的回答,我想從BRATISLAVA改爲紐約,請問該怎麼辦? –