php中的时区转换问题 $start=新日期时间('2011-05-06 19:30:00',新日期时区('Pacific/Tongatapu'); $start->setTimezone(新日期时区('GMT')); $end=clone$start; $end->modify(sprintf(+%d秒),1*60*60); echo$start->format('Ymd\THis\Z')//输出20110506T063000Z 回声“”; echo$end->format('Ymd\THis\Z')//输出20110506T073000Z

php中的时区转换问题 $start=新日期时间('2011-05-06 19:30:00',新日期时区('Pacific/Tongatapu'); $start->setTimezone(新日期时区('GMT')); $end=clone$start; $end->modify(sprintf(+%d秒),1*60*60); echo$start->format('Ymd\THis\Z')//输出20110506T063000Z 回声“”; echo$end->format('Ymd\THis\Z')//输出20110506T073000Z,php,timezone,icalendar,Php,Timezone,Icalendar,这里的输出应该是20110507T063000Z和20110507T073000Z。。。。 有人能帮忙吗。。。?我没有得到适当的结果 为什么会是20110507T073000Z?您只添加了1*60*60秒=1小时。如果你只需要增加一个小时,为什么白天和小时都要改变呢?太平洋/汤加塔普的时区是GMT+13,所以我认为PHP是正确的。有一刻我认为,当我使用亚洲/加尔各答的新时区时,输出将高于$开始->设置时区(新日期时区(“亚洲/加尔各答”);当我从谷歌日历生成会议请求并将时区保留为太平洋/汤加塔普

这里的输出应该是20110507T063000Z和20110507T073000Z。。。。
有人能帮忙吗。。。?我没有得到适当的结果

为什么会是
20110507T073000Z
?您只添加了
1*60*60秒
=1小时。如果你只需要增加一个小时,为什么白天和小时都要改变呢?

太平洋/汤加塔普的时区是GMT+13,所以我认为PHP是正确的。

有一刻我认为,当我使用亚洲/加尔各答的新时区时,输出将高于$开始->设置时区(新日期时区(“亚洲/加尔各答”);当我从谷歌日历生成会议请求并将时区保留为太平洋/汤加塔普和下午7:00时。。。在我的邮件中,我收到的时间分别为20110507T063000Z和20110507T073000Z。。那么,为什么会有这样的差异……晚上7:00是IST中的近似当前时间吗?当前GMT时间为20110506T061000Z
$start = new DateTime('2011-05-06 19:30:00', new DateTimeZone('Pacific/Tongatapu'));
$start->setTimezone(new DateTimeZone('GMT'));
$end   = clone $start;
$end->modify(sprintf('+ %d seconds', 1*60*60));

echo $start->format('Ymd\THis\Z'); //Output 20110506T063000Z
echo "<br/>";
echo $end->format('Ymd\THis\Z'); //Output 20110506T073000Z