php中的时区转换问题

时间:2011-05-06 05:30:39

标签: php timezone icalendar

$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

此处输出应为20110507T063000Z和20110507T073000Z .... 任何人都可以帮忙......?我没有得到适当的结果......

2 个答案:

答案 0 :(得分:0)

为什么会20110507T073000Z?您只需添加1*60*60 seconds = 1小时。如果您所做的只是增加一小时,为什么日期和时间都会改变?

答案 1 :(得分:0)

Pacific / Tongatapu的时区是GMT + 13,所以我认为PHP是正确的。