使用Google Calendar API检索日期时出现问题

时间:2018-02-20 12:50:53

标签: php google-calendar-api

我正在尝试使用PHP和Google Calendar API检索特定日期的活动,但我遇到了在正确日期获取活动的问题。例如,我可以在日历中看到该事件,但它没有使用API​​检索,或者日历中没有任何内容,而且它从前一天开始收到事件。

经过研究和实验,我认为这可能是时区的一个问题,但我在代码中看不出任何错误。值得一提的是,日历中的所有事件都是全天事件。

我非常感谢您提供的任何帮助。 (我是一个新手编码器,这是我的第一个问题所以如果我错过任何事情,请告诉我!)

$eventdate = "26-08-2018";

 require_once "google-api-php-client-2.2.1/vendor/autoload.php";
      putenv("GOOGLE_APPLICATION_CREDENTIALS=MY_CREDENTIALS");
      $scope = 'https://www.googleapis.com/auth/calendar';

      $client = new Google_Client();
      $client->useApplicationDefaultCredentials();
      $client->setScopes($scope);
      $service = new Google_Service_Calendar($client);

      $googleeventdate = date("Y-m-d", strtotime($eventdate));

      $optParams = array(
        "timeZone" => "Europe/London",
        "timeMin" => $googleeventdate . "T00:00:00Z",
        "timeMax" => $googleeventdate . "T23:59:59Z"
      );

      $events = $service->events->listEvents($googlecal, $optParams);

      foreach ($events->getItems() as $event) {    
        echo "Events in Calendar: " . $event->summary;
      }

1 个答案:

答案 0 :(得分:0)

以下是设置时间最小值和时间max

的正确方法
// $eventdate = "26-08-2018";
$timeMin = date("c", strtotime( $eventdate) ); // gives 2018-08-26T00:00:00-04:00
$timeMax = date("c", strtotime( $eventdate.' +1 days') ); // gives 2018-08-27T00:00:00-04:00

您可以对其进行测试here