2012-03-28 15 views
1

我有一個基於php的應用程序,我已經將GCal與OAuth 2.0 API集成在一起。一切工作正常,除了DST +1小時問題。此應用程序僅適用於英國,我還存儲用戶帳戶時區。如果我在凌晨3點加入任務,則在GCal上顯示我上午4點。這是當我添加任務時,在setTimeZone()中將時區硬編碼爲歐洲/倫敦時。此外,GCal賬戶設置也是歐洲/倫敦。這有點令人沮喪,所以請幫助我在我的代碼中更改哪些內容以處理此DST +1小時時差。這裏是代碼:DST在GCal事件中導致+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); 

回答

0

我遭受同樣的問題。

對於是否將時區設置爲GMT + 0或GMT + 1(BST)似乎存在一些不明確之處。後者意味着我將不得不手動處理DST更改,但是當我設置GMT + 0時,它不會在時鐘更改時自動更新。

+1

通過在事件日期中添加+1小時來對此問題進行排序,如下所示:>> define(「GCAL_DST」,「+ 01:00」); ('H')。':'。date(''')。''date('''')。' I ')。':00'.GCAL_DST;現在工作良好。 – Manish 2012-05-11 08:37:38

+0

謝謝。我做了一些改變,但我不知道他們是否工作到十月... – Leo 2012-05-15 16:24:50

相關問題