EST / EDT到GMT转换和日期比较

时间:2011-11-04 18:07:03

标签: php date time gmt

我需要将给定的GMT日期和时间(YYYY-MM-DD HH:MM)转换为表示东海岸日期的字符串YYYYMMDD。你认为下面的代码是否正常?

$date='2011-11-07 04:30';
$date.='-4 hours';
$date=strftime('%Y-%m-%d %H:%M',strtotime($date));
$y=gmdate('Y');  
$date2=date('Y-m-d 02:00',strtotime($y.'-03-01 second sunday'));
$date3=date('Y-m-d 02:00',strtotime($y.'-11-01 first sunday')); 
if($date<=$date2||$date>=$date3) {      
  $date.='-1 hour';
  $date=strftime('%Y-%m-%d %H:%M',strtotime($date));
} 
$date=date('Ymd', strtotime($date));

1 个答案:

答案 0 :(得分:1)

我建议不要自己尝试进行计算。我们精彩,不断变化的时间标准有太多细微差别。相反,依靠PHP来执行计算,使用php.net/date_default_timezone_set将您的时区设置为GMT,然后strtotime()(或DateTime类)以获取unix-timestamp值。

获得unix时间戳后,再次使用php.net/date_default_timezone_set将时区设置为America / New_York并使用date()