2017-02-11 12 views
0

Я пытаюсь получить список событий на текущей неделе из одного общедоступного Календаря Google с помощью Google Api.Google Calendar Api получить события на текущей неделе

Все мои конфигурации хороши, я могу делать любые тесты, список и показывать события на одной веб-странице, но я искал любой запрос для получения событий текущей недели с использованием даты сервера без успеха.

Я думаю, что это возможно, используя опцию «q», указанную в Google Api documentation, но я не знаю, кто я могу указать текущую неделю.

EDIT: Я нашел одно решение и размещен в качестве ответа.

ответ

1

Я отправляю здесь решение я найти на мой вопрос: я вычислил нужный диапазон дат с StrToTime, в моем случае, все дни между предыдущим воскресеньем и следующим понедельником. Затем я передаю эти параметры по моей просьбе:

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

Предположим, у меня есть 50 событий на неделю 02-12-2017 в 02-18-2017. Первое событие начинается с 5 утра 02-12, а последнее событие начинается с 8 вечера 02-18. Использование Центрального поясного времени (CST), это то, как я это сделал:

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

    } 

Я не уверен, если q будет способствовать достижению этой цели. Я попытался, но он работал только с именами и описанием событий, а не с временем начала или временем окончания. Я надеюсь, что эта информация поможет.

+0

Спасибо. Я говорил о выборе q, полагая, что в Календаре Google есть возможность определить одну неделю за номером. Вычисляя php на текущей неделе, я подумал о возможности одного запроса, поскольку «q = weeknumber is 12» Чтение на форумах говорит, что для номеров шоу-недели в календаря Google нам нужно использовать другой календарь! Затем мой подход будет вычисляться по php текущей первой и последней дате и передавать эти два значения в качестве параметров timeMin, timeMax. –

 Смежные вопросы

  • Нет связанных вопросов^_^