[我正在尝试编写一个简单的PHP解析器以获取Google日历事件并打印值。
$apiKey = "worworjdjdidjd";
$calendarID = "[email protected]";
$optionalParams = array('maxResults' => '100', 'singleEvents' => 'True', 'orderBy' => 'startTime', 'timeMin' => $dateStart, 'timeMax' => $dateEnd);
$client = new Google_Client();
$client->setApplicationName("CAL");
$client->setDeveloperKey($apiKey);
$service = new Google_Service_Calendar($client);
$events = $service->events->listEvents($calendarID, $optionalParams);
foreach ($events->getItems() as $event) {
echo "getSummary ". $event->getSummary() . "<br />";
echo "getStart ". $event->getStart() . "<br />";
}
getStart函数返回一个Google_Service_Calendar_EventDateTime对象。当我尝试将其回显到标准输出时,出现错误:
Catchable fatal error: Object of class Google_Service_Calendar_EventDateTime could not be converted to string
任何帮助将不胜感激。
尝试一下:
$event->getStart()->dateTime
比这要棘手的多,因为它们是两种类型的事件:全天以及开始和结束,所以您必须同时满足两种情况:
$dateStart = ($event->start->getDate() != '') ? $event->start->getDate() : $event->start->getDateTime();
$dateEnd = ($event->end->getDate() != '') ? $event->end->getDate() : $event->end->getDateTime();
$start = new DateTime($dateStart);
$end = new DateTime($dateEnd);
最后,您有了一个不错的DateTime对象,可以按照自己喜欢的格式进行格式化:
$start->format("d.m.Y H:i");
// 20.12.2019 09:30