0

我已经打开了一个关于(我假设)是 Google App Scripts 中的错误的问题,但它看起来不像被监控,所以我想知道是否有人可以解决我的问题。

总之,我正在运行一个脚本(通过谷歌电子表格),它试图在我创建的谷歌日历中输入一个条目。

function testCalendarAllDayEvent(){
  var calendar = CalendarApp.getCalendarById("od4434jhedv936p65gcbl3bjg@group.calendar.google.com");
  var calTimezone = calendar.getTimeZone();
  var scriptTimezone = Session.getTimeZone();
  var calendarevent = calendar.createAllDayEvent("Test Event", new Date(2011,7,1));
  var summary = calendarevent.getStartTime();
}

所以上面的代码在 2011 年 7 月 31 日而不是 7 月 1 日添加了“测试事件”。如果我将其更改为 new Date (2011,7,2)2011 年 8 月 1 日将其放入。所以它似乎是 30 天。我查看时区以确保它们相同的原因。当我查看summary变量值时Mon Aug 01 2011 01:00:00 GMT+0100 (IST)

我不想盲目地在所有日期上添加 30 天,因为它只会以眼泪结束。有谁知道我在做什么是不正确的?我使用 Google 示例作为模板。

4

1 回答 1

0

这里的问题是Date 构造函数采用从零开始的月份索引。所以

new Date(2011,7,1)创建日期为 2011 年 8 月 1 日。

然而

new Date(2011,6,1)创建 2011 年 7 月 1 日的日期。

于 2011-08-22T18:54:49.490 回答