2012-03-28 9 views
1

Ich habe eine PHP-basierte Anwendung, wo ich GCal mit OAuth 2.0 API integriert habe. Alles funktioniert gut außer dem DST +1 Stunde Problem. Diese Anwendung ist nur für UK und ich speichere auch die Zeitzonen des Benutzerkontos. Wenn ich um 3:00 Uhr eine Aufgabe hinzufüge, zeigt es mir auf GCal 4:00 Uhr. Dies ist, wenn ich die Zeitzone in SetTimeZone() fest in Europa/London programmiert habe, während ich Aufgabe hinzufüge. Außerdem ist die GCal-Kontoeinstellung auch als Europa/London. Das ist ein bisschen frustrierend, also bitte hilf mir, was ich in meinem Code ändern sollte, um mit dieser DST +1 Stunde Zeitunterschied umzugehen. Hier ist der Code:DST verursacht +1 Stunde Zeitunterschied in GCal Ereignisse

$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); 

Antwort

0

Ich leide das gleiche Problem.

Es scheint eine gewisse Unklarheit darüber zu bestehen, ob die Zeitzone auf GMT + 0 oder GMT + 1 (BST) eingestellt werden soll. Letzteres würde bedeuten, dass ich die Änderungen der Sommerzeit später manuell behandeln muss, aber wenn ich GMT + 0 einstelle, wird es nicht automatisch aktualisiert, wenn sich die Uhren ändern.

+1

haben dieses Problem durch Hinzufügen von +1 Std. In einem Ereignisdatum wie diesem >> define ("GCAL_DST", "+ 01:00"); $ startDate = Datum ('Y') .'- '. Datum (' m ') .'-'. Datum ('d'). 'T'date (' H ').': '. Datum (' i ').': 00'.GCAL_DST; Funktioniert jetzt gut. – Manish

+0

Danke. Ich habe einige Änderungen vorgenommen, aber ich werde nicht wissen, ob sie bis Oktober gearbeitet haben ... – Leo

Verwandte Themen