【发布时间】:2020-08-27 23:38:41
【问题描述】:
我在从 Google 日历事件 API 中提取正确日期时遇到问题。问题与结束日期不正确有关。例如,某个区块的 Google 日历事件可能在 8:30-10 运行,但该事件在 8:30 - 7:00 到来。这会影响我们请求的所有结果。代码如下所示:
function listUpcomingEvents() {
gapi.client.calendar.events.list({
'calendarId': 'atomic55.net_7smfqj9jlem68s42unp0ubr9js@group.calendar.google.com',
'timeMin': (new Date()).toISOString(),
'showDeleted': false,
'singleEvents': true,
'maxResults': 150,
'orderBy': 'startTime'
}).then(function(response) {
返回的信息是(样本):
即将举行的活动:
- ADS (2020-08-27T15:30:00-07:00)
- 垃圾抽屉 (2020-08-28T07:30:00-07:00)
- 引导下载 (2020-08-28T09:00:00-07:00)
- 客户端 X (2020-08-28T09:30:00-07:00)
- 电话/通讯 (2020-08-28T12:30:00-07:00)
开始时间准确,但结束时间不准确(注意所有结束日期都是 7:00)。知道为什么会这样吗?
【问题讨论】:
-
听起来像是 API 将在日历设置的任何时区返回结果的时区问题。尝试在该日历 ID 上执行 calendar.get 以查看其设置的时区。
-
感谢您的回复,但如果是时区问题,为什么开始时间准确,而结束时间不正确?我会检查的。
-
请编辑您的问题,包括来自 calendar.get 的结果。所以我们可以看到它设置的时区。然后包括来自 API 的完整响应以及查看日历中设置的内容。您的代码看起来正确,其他东西正在影响结果。我唯一的猜测是时区。
-
您是如何创建这些活动的?它们在日历 UI 中是什么样子的?您可以发布活动的完整回复吗?
-
您好 Ryan55,当您想提供更多信息时,您需要edit 您提出问题,而不是作为回答提供。此外,完整响应是指您在列出/获取事件时获得的完整 JSON 响应,您可以指定
'fields':'*'。另外:在使用events.get而不是events.list时,您是否有同样的问题?您是通过日历 API、Claendar UI 还是通过第三方创建活动?
标签: javascript google-api google-calendar-api google-api-js-client