我正在尝试使用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;
}
答案 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