2017-02-11 1 views
0

Google Api를 사용하여 공개 Google 캘린더에서 이번 주 일정 목록을 가져 오려고합니다.Google 캘린더 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

내가 2017년 2월 18일2017년 2월 12일의 주에 50 개 개의 이벤트가 있다고 가정. 첫 번째 이벤트는 오전 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

감사합니다. Google 캘린더가 숫자로 1 주일을 정의 할 수 있다고 생각하는 q 옵션에 대해 이야기했습니다. 이번 주 PHP로 계산하면 "q = weeknumber가 12입니다"라는 쿼리의 가능성을 생각해 보았습니다. 포럼에서 읽기, Google 캘린더의 주 표시 숫자에 대해 다른 캘린더를 사용해야한다고 말합니다! 그런 다음, 내 접근 방식은 PHP에 의해 현재 주 시작 날짜와 마지막 날짜를 계산하고 timeMin, timeMax 매개 변수로이 두 값을 전달합니다. –

관련 문제