Google日历活动列表未按预期运行

时间:2015-11-05 18:18:07

标签: javascript html google-api google-calendar-api

我正在测试床网站上测试Google Calendar Api的event list功能。根据{{​​1}}和timeMin值,响应不会列出事件。这是两个案例。在这两种情况下,我应该在9:30到9:45之间得到一个回复​​。但它没有出现在第一种情况下(时间范围:9:00到10:00),但它出现在第二种情况下(时间范围:9:00到15:00)。直到将时间范围延长到15:00才行。为什么api表现奇怪?

timeMax

Case 1:

timeMin: 2015-11-06T09:00:00Z

我的要求: timeMax: 2015-11-06T10:00:00Z

响应:

GET https://www.googleapis.com/calendar/v3/calendars/MY_EMAIL%40gmail.com/events?timeMax=2015-11-06T10%3A00%3A00Z&timeMin=2015-11-06T09%3A00%3A00Z&fields=description%2Citems(attendees%2Cdescription%2Cend%2Cid%2Cstart%2Csummary)%2Csummary%2CtimeZone&key={YOUR_API_KEY}

{ "summary": "some summary", "timeZone": "America/New_York", "items": [ ] }

Case 2:

timeMin: 2015-11-06T09:00:00Z

我的要求: timeMax: 2015-11-06T15:00:00Z

响应:

GET https://www.googleapis.com/calendar/v3/calendars/MY_EMAIL%40gmail.com/events?timeMax=2015-11-06T15%3A00%3A00Z&timeMin=2015-11-06T09%3A00%3A00Z&fields=description%2Citems(attendees%2Cdescription%2Cend%2Cid%2Cstart%2Csummary)%2Csummary%2CtimeZone&key={YOUR_API_KEY}

1 个答案:

答案 0 :(得分:0)

这些时间是UTC(从您第一次请求的时间间隔开始):

timeMin: 2015-11-06T09:00:00Z
timeMax: 2015-11-06T10:00:00Z

这些时间被抵消:-05:00(来自第二次请求的结果):

"dateTime": "2015-11-06T09:30:00-05:00"
"dateTime": "2015-11-06T09:45:00-05:00"

由于偏移,您的第一个时间间隔不包括那些时间。

<强>更新

@jaykumarark和我聊了聊这个,在我看来他没有遗漏任何东西 - 为了使用这个API,你必须提供一个RFC3339兼容的日期戳,包括时区(Z或偏离UTC)所以你可以'让服务器为你做时区偏移计算。