DST导致GCal事件的+1小时时差

时间:2012-03-28 20:55:38

标签: php google-calendar-api dst gcal

我有一个基于php的应用程序,我将GCal与OAuth 2.0 API集成在一起。除DST +1小时问题外,一切正常。此应用程序仅适用于英国,我也存储用户帐户时区。如果我在凌晨3点添加任务,那么在GCal上它会显示我凌晨4点。这是我在添加任务时在setTimeZone()中将时区硬编码为Europe / London的时间。此外,GCal帐户设置也是欧洲/伦敦。这有点令人沮丧,所以请帮助我在我的代码中应该更改什么来处理这个DST +1小时时差。这是代码:

$evt = new Event();
$evt->setDescription($txtDesc); 
$evt->setSummary($taskTypeTxt);

#--Setting Event Date
$evtDT  = new EventDateTime();
$evtDT2     = new EventDateTime();

$evtDT->setDateTime($startDate); 
$evtDT->setTimeZone('Europe/London');

$evtDT2->setDateTime($endDate);
$evtDT2->setTimeZone('Europe/London');
$evt->setOriginalStartTime($evtDT);
$evt->setStart($evtDT);
$evt->setEnd($evtDT2);

$field = array('items/id');
$evtId = $cal->events->insert($user_email,$evt,$field);

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题。

对于是否将时区设置为GMT + 0或GMT + 1(BST)似乎存在一些模糊性。后者意味着我随后必须手动处理DST更改,但是当我设置GMT + 0时,它不会在时钟更改时自动更新。