2016-08-03 13 views
0

Ich erstelle Ereignisse im Google Kalender mit PHP. Das Ereignis wurde erfolgreich erstellt, es wird jedoch im Kalender eine falsche Uhrzeit angezeigt.Ungültige Datumsanzeige im Google Kalender

$start = '2016-08-04T13:30:00.000+02:00'; 
$end = '2016-08-04T18:00:00.000+02:00' 
$timezone= 'Europe/Zurich'; 

$service = new Google_Service_Calendar($client); 
     $event = new Google_Service_Calendar_Event(array(
      'summary' => $eventname, 
      'location' => $address, 
      'description' => $description, 
      'start' => array(
       'dateTime' => $start, 
       'timeZone' => $timezone, 
      ), 
      'end' => array(
       'dateTime' => $end, 
       'timeZone' => $timezone, 
      ), 
      'attendees' => array(
       array('email' => $contactemail), 
      ), 
      'reminders' => array(
       'useDefault' => FALSE, 
       'overrides' => array(
       array('method' => 'email', 'minutes' => 24 * 60), 
       array('method' => 'popup', 'minutes' => 10), 
      ), 
      ), 
     )); 

     $event = $service->events->insert($calid, $event); 

Mit diesem Code wird das Ereignis erfolgreich erstellt. Wenn ich das Ereignis im Kalender überprüfe, zeigt es eine falsche Zeit an.

Siehe diese URL für sie. http://awesomescreenshot.com/00b62fl6ed

Und wenn ich auf Edit-Ereignis klicken, dann überprüfen Sie die Startdatum und Enddatum ist korrekt mit der Zeit.

Siehe diese URL für sie. http://awesomescreenshot.com/0df62fkn00

aber das Problem ist, dass es auf dem Kalender nicht korrekt angezeigt. Bitte überprüfen Sie meinen Code und sagen Sie mir, was dort nicht stimmt.

+0

Sie überprüfen Ihren Code und finden, was falsch ist! SO ist ** kein kostenloser Debugging-Dienst ** – RiggsFolly

+1

Nun, da dieser Code nicht kompiliert werden würde, verwenden Sie diesen Code offensichtlich nicht. Also, was wäre der Sinn von uns, Code zu überprüfen, den Sie nicht für Fehler in Code verwenden, den Sie verwenden? – RiggsFolly

+0

Sieht nur ein Zeitzonenproblem in Ihrem Hauptkalender-Display aus. Benutzt du die gleiche Zeitzone? (Zürich +02) –

Antwort

0

Sie haben den Tippfehler in Ihrem Code. In der zweiten Zeile fehlt Semikolon am Ende.

$end = '2016-08-04T18:00:00.000+02:00'; 

Allerdings denke ich, dass dieser Fehler in Google Kalender Setup sein wird. Versuchen Sie, auf Google Kalender-Setup auf Zeitzone zu schauen, wenn es in Harmonie Ihrer Zeitzone ist.

+0

: - immer noch dasselbe Problem –

+0

In diesem Fall ist es schwierig, aus der Ferne zu beraten. Probieren und prüfen. –

0

Arbeitslösung aus http://php.net/manual/en/function.date.php genommen

<?php 

/** 
* Get date in RFC3339 
* For example used in XML/Atom 
* 
* @param integer $timestamp 
* @return string date in RFC3339 
* @author Boris Korobkov 
*/ 
function date3339($timestamp=0) { 

    if (!$timestamp) { 
     $timestamp = time(); 
    } 
    $date = date('Y-m-d\TH:i:s', $timestamp); 

    $matches = array(); 
    if (preg_match('/^([\-+])(\d{2})(\d{2})$/', date('O', $timestamp), $matches)) { 
     $date .= $matches[1].$matches[2].':'.$matches[3]; 
    } else { 
     $date .= 'Z'; 
    } 
    return $date; 
} 

?> 

Hintergrund: Von http://www.ibm.com/developerworks/opensource/library/os-php-xpath/ ich sah "Die veröffentlichten und aktualisierten Elemente der RFC 3339 Zeitstempel -Format verwenden."

Und ich dachte, google "rfc3339 PHP" um eine Funktion zu finden, die dieses Format implementiert

+0

: - immer noch das gleiche Problem –