2017-02-11 60 views
0

我試圖從使用谷歌阿比一個公共谷歌日曆獲取當前一週的事件列表的事件。谷歌日曆API得到當前一週

我所有的配置都不錯,我可以做任何測試,列表,並顯示事件一個網頁,但我搜索任何類型的查詢爲獲得使用服務器日期與成功走出當前周的事件。

我認爲這是可能使用在Google Api documentation指示的「Q」的選擇,但我不知道是誰,我可以表明當前周。

編輯: 我找到了一個解決方案,張貼的答案。

回答

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-201702-18-2017。第一個事件開始於上午05點在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參數傳遞。 –