Google App Script Calendar API - createAllDayEvent() 方法未按预期工作

发布于 2024-11-18 22:44:16 字数 1164 浏览 2 评论 0原文

我打开了 问题(我认为)是 Google App Scripts 中的一个错误,但是它看起来不像受到监控,所以我想知道是否有人可以解决我的问题。

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

function testCalendarAllDayEvent(){
  var calendar = CalendarApp.getCalendarById("[email protected]");
  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 日添加了“测试事件”。如果我把它改成 新日期 (2011,7,2)它把它放在 2011 年 8 月 1 日。所以看起来已经过去了 30 天。 我查看时区的原因是为了确保它们是相同的。当我查看 summary 变量值时,它是 Mon Aug 01 2011 01:00:00 GMT+0100 (IST)

我不想盲目地添加 30 天所有的约会都会以泪水结束。有谁知道我所做的是否不正确?我使用了 Google 示例作为模板。

I've opened an issue about (what I assume) is a bug in Google App Scripts but it doesn't look like its being monitored so I wondering if anyone has a work around for my problem.

In summary I am running a script (via a google spreadsheet) which attempts to put an entry in a Google Calendar I created.

function testCalendarAllDayEvent(){
  var calendar = CalendarApp.getCalendarById("[email protected]");
  var calTimezone = calendar.getTimeZone();
  var scriptTimezone = Session.getTimeZone();
  var calendarevent = calendar.createAllDayEvent("Test Event", new Date(2011,7,1));
  var summary = calendarevent.getStartTime();
}

So the above code adds the "Test Event" on the 31st July 2011 instead of the 1st July. If I change it to
new Date (2011,7,2)it puts it in on the 1st August 2011. So it seems to be 30 days out.
The reason I look at the time zones it to ensure they are the same. When I look at the summary variable value it is Mon Aug 01 2011 01:00:00 GMT+0100 (IST)

I don't want to blindly add 30 days to all dates as it will just end in tears. Does anyone know if what I am doing is incorrect? I've used Google examples as templates.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

北凤男飞 2024-11-25 22:44:16

这里的问题是 日期构造函数 采用从零开始的月份索引。因此,

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

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

The issue here is that the Date constructor takes a zero-based month index. So

new Date(2011,7,1) creates a Date of Aug 1 2011.

whereas

new Date(2011,6,1) creates a Date of July 1 2011.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文