2017-02-11 62 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参数传递。 –