1

如果这是一个老问题,请原谅我,我找不到这个问题的解决方案。我想从我的 Laravel 应用程序在谷歌日历上创建全天事件,根据文档 startDate 和 endDate 应该与 startDate='2021-12-15' 和 endDate='2021-12-15' 相同。

如果我像这样格式化日期;

$startDateTime = Carbon::parse('2021-12-15')->toRfc3339String();
$endDateTime = Carbon::parse('2021-12-15')->toRfc3339String();

在 Google 日历上创建的事件如下所示 在此处输入图像描述

如何形成日期以创建如下事件 在此处输入图像描述

如果我格式化日期$startDateTime = Carbon::create('2021-12-15')->format('Y-m-d');$endDateTime = Carbon::create('2021-12-15')->format('Y-m-d');我得到这个错误; Google\Service\Exception { "error": { "errors": [ { "domain": "global", "reason": "badRequest", "message": "Bad Request" } ], "code": 400, "message": "Bad Request" } }

文档链接 https://developers.google.com/calendar/api/v3/reference/events

4

1 回答 1

0

首先感谢蒂姆刘易斯在评论中询问更多细节。如您提供的谷歌文档中所述:

对于start.date

日期,格式为“yyyy-mm-dd”,如果这是全天事件。

start.dateTime

时间,作为组合的日期时间值(根据 RFC3339 格式化)。除非在 timeZone 中明确指定时区,否则需要时区偏移量。

所以简而言之,如果你想设置一个全天的事件,你应该用日期格式填写start.date和,对于正常的事件,你应该填写和。请记住,如果需要,您可以提供时区。end.datay-m-dstart.dateTimeend.dateTimestart.timeZone

PS您也可以start.dateTime用于全天活动,您只需添加确切时间(例如2021-12-15 00:00:00)和23:59:59即可end.dateTime。但是,当您使用与日历不同的时区时,使用此选项可能会导致一些错误。

于 2021-12-14T02:34:01.727 回答