Php 更新Google日历-致命错误:调用未定义的函数dateTime()

Php 更新Google日历-致命错误:调用未定义的函数dateTime(),php,api,google-calendar-api,Php,Api,Google Calendar Api,我正在尝试使用PHP API更新Google日历。我已成功创建Google日历事件并自动获取事件的ID,但当我尝试更新事件时,出现以下错误: PHP致命错误:在第45行的public_html/googleapi/calendarupdate.PHP中调用未定义的函数dateTime()。这是指: $event->setStart.dateTime($startdatetime); $event->setStart.dateTime($startdatetime); 以下是我当前

我正在尝试使用PHP API更新Google日历。我已成功创建Google日历事件并自动获取事件的ID,但当我尝试更新事件时,出现以下错误:

PHP致命错误:在第45行的public_html/googleapi/calendarupdate.PHP中调用未定义的函数dateTime()。这是指:

$event->setStart.dateTime($startdatetime);
$event->setStart.dateTime($startdatetime);
以下是我当前的错误PHP代码:

    <?php

header('Content-type: application/json');

require_once __DIR__ . '/google-api-php-client/src/Google/autoload.php';

$summary = $_POST["summary"];
$location = $_POST["location"];
$description = $_POST["description"];
$startdatetime = $_POST["startdatetime"];
$enddatetime = $_POST["enddatetime"];
$clientemail = $_POST["clientemail"];
$privatekey = $_POST["privatekey"];
$useremail = $_POST["useremail"];
$calendarid = $_POST["calendarid"];



$client_email = $clientemail;
$private_key = file_get_contents($privatekey);
$scopes = array('https://www.googleapis.com/auth/calendar');
$user_to_impersonate = $useremail;
$credentials = new Google_Auth_AssertionCredentials(
    $client_email,
    $scopes,
    $private_key,
    'notasecret',                                 // Default P12 password
    'http://oauth.net/grant_type/jwt/1.0/bearer', // Default grant type
    $user_to_impersonate
);
$client = new Google_Client();
$client->setAssertionCredentials($credentials);
if ($client->getAuth()->isAccessTokenExpired()) {
  $client->getAuth()->refreshTokenWithAssertion();
}

$service = new Google_Service_Calendar($client);

$event = $service->events->get($useremail, $calendarid);
$event->setSummary($summary);
$event->setLocation($location);
$event->setStart.dateTime($startdatetime);
$event->setStart.timeZone('America/Los_Angeles');
$event->setEnd.dateTime($enddatetime);
$event->setEnd.timeZone('America/Los_Angeles');
$event->setDescription($description);

$updatedEvent = $service->events->update($useremail, $event->getId(), $event);

echo json_encode($updatedEvent);

好的,我确实设法弄明白了。我只是换了句台词:

$event->setStart.dateTime($startdatetime);
$event->setStart.dateTime($startdatetime);
为此:

$event->start->setDateTime($startdatetime);

我对EndDateTime做了同样的事情,除了上面写着start的地方,我只是把end放在了后面。只是测试了一下,效果很好。可以找到帮助我解决问题的网站。

设置开始日期是一种方法,您需要将日期$event->setStart($date)传递给它;