【发布时间】:2020-08-04 09:25:34
【问题描述】:
我有以下脚本:
$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
但是当我在实时应用程序中检查时区转换的时间时。比如The Time Zone Converter,我得到的数据是2020-02-05 23:04:11。
为什么会出现这种不匹配?我该如何克服这个问题?
【问题讨论】:
-
今天上线不是02-05。
-
@AbraCadaver。你能解释一下吗?
-
美国的夏令时从 03-08 开始增加了 1 小时,因此您在 02-05 和今天 04-21 之间的支票之间增加了一个小时。