我如何将Google_Service_Calendar_EventDateTime对象转换为字符串?

问题描述 投票:0回答:2

[我正在尝试编写一个简单的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 

任何帮助将不胜感激。

php google-api-php-client
2个回答
2
投票

尝试一下:

$event->getStart()->dateTime

0
投票

比这要棘手的多,因为它们是两种类型的事件:全天以及开始和结束,所以您必须同时满足两种情况:

$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
© www.soinside.com 2019 - 2024. All rights reserved.