2017-02-11 5 views
0

Ich versuche, eine Liste der Ereignisse in der aktuellen Woche aus einem öffentlichen Google Kalender mit der Google API zu erhalten.Google Kalender API Ereignisse in der aktuellen Woche abrufen

Alle meine Konfigurationen sind gut, ich kann alle Tests, Listen und zeigen Ereignisse in einer Webseite, aber ich suchte jede Art von Abfrage für die Ereignisse der aktuellen Woche mit dem Server Datum mit Erfolg.

Ich denke, es ist möglich mit der "q" -Option in der Google Api documentation angegeben, aber ich weiß nicht, wer ich die aktuelle Woche angeben kann.

EDIT: Ich fand eine Lösung und als Antwort geschrieben.

Antwort

1

Ich bin hier, um die Lösung zu veröffentlichen ich für meine Frage finden: ich den gewünschten Datumsbereich mit strtotime, in meinem Fall berechnet, alle Tage zwischen vorherigem Sonntag und am kommenden Montag. Dann überreiche ich diese Parameter zu meiner Anfrage:

function getEvents($service, $calendarId){ 
//De un Domingo al otro 
$date_inicio = date('c',strtotime("previous sunday")); 
$date_fin = date('c',strtotime("next monday")); 
$optParams = array(
    'orderBy' => 'startTime', 
    'singleEvents' => TRUE, 
    'timeMin' => $date_inicio, 
    'timeMax' => $date_fin 
); 
    $results = $service->events->listEvents($calendarId, $optParams); 

if (count($results->getItems()) == 0) { 
    print "Ningún evento encontrado.\n"; 
} else { 
    foreach ($results->getItems() as $event) { 
     $start = $event->start->dateTime; 
     if (empty($start)) { 
      $start = $event->start->date; 
     } 
     printf("%s (%s)\n", $event->getSummary(), $start); 
     echo $start.'<br>'.$event->getSummary().'<br>'.$event->getDescription().'<hr>'; 
     printf("%s (%s)\n<br><br>", $event->getDescription(), $start); 
    } 
} 
} 
1

Angenommen, ich habe 50 Veranstaltungen an der Woche von 2017.02.12 zu 2017.02.18. Die erste Veranstaltung beginnt um 5 Uhr auf 02-12 und das letzte Ereignis beginnt um 20 Uhr auf 02-18. Mit Central Standard Time (CST), das ist, wie ich es tat:

$service = new Google_Service_Calendar($client); 

    $optParams = array(
    "timeMin" => "2017-02-12T05:00:00-06:00", 
    "timeMax" => "2017-02-18T20:00:01-06:00" 
); 

    $events = $service->events->listEvents('[email protected]', $optParams); 

    foreach ($events->getItems() as $event) {  

    print $eventnum . " - Event Name: ". $event->summary . "<br>"; 

    } 

Ich bin nicht sicher, ob die q wird dies erreichen helfen. Ich habe versucht, aber es funktionierte nur mit Namen und Beschreibung der Ereignisse, nicht mit Startzeiten oder Endzeiten. Ich hoffe diese Information hilft.

+0

Danke. Ich habe über die Option q gesprochen, in der ich denke, dass Google Kalender die Möglichkeit hat, eine Woche nach Nummer zu definieren. Rechnen wir mit php die aktuelle Woche, dachte ich mir die Möglichkeit einer Abfrage als "q = weeknumber is 12" ein. In Foren lesen heißt es, dass wir für die Kalenderwoche in Google Kalendern einen anderen Kalender verwenden müssen! Dann berechnet mein Ansatz das erste und letzte Datum der aktuellen Woche und übergibt diese beiden Werte als timeMin, timeMax Parameter. –

Verwandte Themen