2017-03-17 63 views
0

我正在開發一個項目,它可以節省UTC區域的時間。我想在前端的Asia/Kolkata區域中顯示時間。將日期和時間從UTC轉換爲IST,反之亦然PHP

$createdAt = '2017-03-16 23:21:56'; 

/* The indian time was 2017-03-17 11:52 when the record was placed, so after converting it to Asia/Kolkata it should display 2017-03-17 11:52 (seconds does not matter) */ 

我的PHP代碼,將其轉換成亞洲/加爾各答

$createdAt = '2017-03-16 23:21:56'; 
$dateFrom = new DateTime($createdAt, new DateTimeZone('America/Chicago')); 
$dateFrom->setTimezone(new DateTimeZone('Asia/Kolkata')); 
$IST = $dateFrom->format('Y-m-d H:i:s'); 

輸出是2017-03-17 09:51:56而不是2017-03-17 11:52:56。輸出顯示在實際時間前2小時。我無法弄清楚。

您的建議將會對我有所幫助。

回答

1

如果您的輸入日期/時間在Chicago time zone,則應考慮DST。變化發生在當地時間3月12日02:00,所以你的輸入(假設$createdAt是正確的)已經在DST狀態(即UTC -05:00)。

由於加爾各答是UTC + 05:30(並且沒有DST調整),因此您的特定輸入的總差值爲10:30,證明輸出爲2017-03-17 09:51:56

+0

好了解,所以你的意思是沒有辦法將時間從一個時區轉換到另一個時區,而不會影響一分鐘。 感謝您的回覆 –

+0

@SantanuBiswas所以你想圍繞它到最近的一分鐘或剝去秒? – ewcz

相關問題