时区转换在PHP中可以再多给一个小时
我有以下脚本:时区转换在PHP中可以再多给一个小时,php,timezone,Php,Timezone,我有以下脚本: $data = array( 'fromTimezone' => 'Asia/Kolkata', 'toTimezone' => 'America/New_York', 'dateTime' => '2020-02-06 08:34:11', 'dateTimeFormat' => 'Y-m-d H:i:s' ); $fromTimezone
$data = array(
'fromTimezone' => 'Asia/Kolkata',
'toTimezone' => 'America/New_York',
'dateTime' => '2020-02-06 08:34:11',
'dateTimeFormat' => 'Y-m-d H:i:s'
);
$fromTimezone = $data['fromTimezone'];
$toTimezone = $data['toTimezone'];
$dateTime = $data['dateTime'];
$dateTimeFormat = $data['dateTimeFormat'];
$fromZoneDateTime = new DateTime($dateTime, new DateTimeZone($fromTimezone));
// synchronizing with the to-Timezone
$fromZoneDateTime->setTimezone(new DateTimeZone($toTimezone));
$returnDateTime = date($dateTimeFormat, strtotime($fromZoneDateTime->format('Y-m-d H:i:s')));
echo $returnDateTime;
这是给我的2020-02-05 22:04:11
但当我检查时区转换的实时应用程序中的时间时。比如,我得到的数据是2020-02-05 23:04:11
为什么会出现这种不匹配?我怎样才能克服这一点呢?我想这是因为白天节省了很多钱
请参考您所参考的网站显示了您当地时区(可能是印度)与当前日期纽约时间之间的差异 您还可以使用其他网站来验证您的假设,例如timeanddate.com,它与您的代码输出保持一致
至于原因,请理解,虽然印度固定为UTC+05:30(IST),但纽约在UTC-05:00(东部标准时间)和UTC-04:00(东部标准时间)之间交替。有关这方面的更多信息,请阅读,特别是“时区!=偏移量”一节。您可能还想回顾一下。今天不是02-05在线。@Abracadver。你能解释一下吗?美国的夏令时从08年3月起增加了1个小时,所以从05年2月的支票到今天的21年4月之间增加了一个小时。如何克服这一点?时间就是你想要克服什么的时间?@Saswat-没有什么需要克服的。正如AbraCadaver指出的,时间转换是正确的。