0

这是代码:

const calendar = google.calendar({ version: 'v3', auth });

const meetingsResponse = await calendar.events.list({
      calendarId: 'primary',
      timeMin: new Date(new Date().setHours(0,0,0,0)).toISOString(),
      maxResults: 1,
      singleEvents: true,
      orderBy: 'startTime',
     });

输出: ?

有人知道问题出在哪里吗?

4

1 回答 1

1

您可以将timeMax设置为当前日期时间以获取已结束事件的列表。如果您真的只想获得 1 个结果(最新结束的事件),您可以将maxResults保留为1

最大时间

  • 过滤事件开始时间的上限(不包括)。
  • 这将是事件开始时间应该配置的最大日期时间。

时间最小值

  • 过滤事件的结束时间的下限(不包括)
  • 这将是事件结束时间应该配置的最小日期时间。

例如:

timeMax = 2020-12-23T11:00:00Z(现在的日期时间)

事件 1 开始时间 = 2020-12-22T08:00:00Z

活动 2 开始时间 = 2020-12-23T14:00:00Z

  • events.list()应该返回事件 1(结束事件),因为事件 1 的开始时间小于 timeMax。

在您的代码中,当您使用 timeMin 过滤日期时,您说的是事件结束时间现在应该是的最小日期时间。因此, events.list() 将返回结束时间大于 timeMin(now) 的事件,这些事件是尚未结束的事件。

样本:

在此处输入图像描述

timeMax = 2020-12-23T11:00:00Z

回应(删除了一些不必要的信息):

{
  ....

 "items": [
  {
   "kind": "calendar#event",
   "summary": "ended event 1",
   "start": {
    "dateTime": "2020-12-22T20:30:00+08:00"
   },
   "end": {
    "dateTime": "2020-12-22T21:00:00+08:00"
   }
  },
  {
   "kind": "calendar#event",
   "summary": "ended event 2",
   "start": {
    "dateTime": "2020-12-20T16:00:00+08:00"
   },
   "end": {
    "dateTime": "2020-12-20T16:30:00+08:00"
   }
  },
  {
   "kind": "calendar#event",
   "summary": "ended event 3",
   "start": {
    "dateTime": "2020-12-21T11:00:00+08:00"
   },
   "end": {
    "dateTime": "2020-12-21T11:30:00+08:00"
   }
  }
 ]
}
于 2020-12-23T16:27:18.807 回答