时区转换在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指出的,时间转换是正确的。