2016-03-15 43 views
0

我想通過照顧PHP中的夏令時將UTC時間轉換爲EST。 這是我做了什麼至今:通過照顧夏令時將UTC轉換爲EST

$from='UTC'; 
$to='EST'; 
$format='Y-m-d H:i:s'; 
$date=date('2106-03-15 23:00:00');// UTC time 
date_default_timezone_set($from); 
$newDatetime = strtotime($date); 
date_default_timezone_set($to); 
$newDatetime = date($format, $newDatetime); 
date_default_timezone_set('UTC'); 
echo $newDatetime ;//EST time 

它返回6:00 AM EST,但由於夏令應該7:00AM EST

任何想法?

回答

3

我認爲這裏有兩個缺點。一種是指定東部標準時間似乎意味着夏令時被忽略。另一種是,您鍵入2106,當我想你的意思是2016年夏令時將不會在3月15日2106開始將出現以下工作:使用DateTime

$from='UTC'; 
$to='America/New_York'; 
$format='Y-m-d H:i:s'; 
$date=date('2016-03-15 23:00:00');// UTC time 
date_default_timezone_set($from); 
$newDatetime = strtotime($date); 
date_default_timezone_set($to); 
$newDatetime = date($format, $newDatetime); 
date_default_timezone_set('UTC'); 
echo $newDatetime ;//EST time 

在另一方面是有點更容易閱讀,這是非常相似的第一個例子中的文檔中的DateTime::setTimeZone()

$date = new DateTime('2016-03-15 23:00:00', new DateTimeZone('UTC')); 
$date->setTimezone(new DateTimeZone('America/New_York')); 
echo $date->format('Y-m-d H:i:s'); 
+0

感謝它爲我工作+1 – Rahul

相關問題