API Google Script Calendar API - метод createAllDayEvent () не работает должным образом - PullRequest
0 голосов
/ 06 июля 2011

Я открыл вопрос о (что я предполагаю) - ошибка в скриптах Google App, но она не выглядит так, как будто ее отслеживают, поэтому мне интересно, есть ли у кого-нибудь способ обойти мою проблему.

Итак, я запускаю скрипт (через электронную таблицу Google), который пытается добавить запись в созданный мной календарь Google.

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();
}

Таким образом, приведенный выше код добавляет «Тестовое событие» 31 июля 2011 года вместо 1 июля.Если я изменю его на new Date (2011,7,2), он будет добавлен 1-го августа 2011 года. Так что, похоже, пройдет 30 дней.Причина, по которой я смотрю на часовые пояса, заключается в том, чтобы они были одинаковыми.Когда я смотрю на значение переменной summary, оно равно Mon Aug 01 2011 01:00:00 GMT+0100 (IST)

. Я не хочу слепо добавлять 30 дней ко всем датам, поскольку это просто закончится слезами.Кто-нибудь знает, что я делаю неправильно?Я использовал примеры Google в качестве шаблонов.

1 Ответ

0 голосов
/ 22 августа 2011

Проблема здесь в том, что Конструктор даты принимает индекс месяца, начинающийся с нуля.Поэтому

new Date(2011,7,1) создает дату 1 августа 2011 года.

, тогда как

new Date(2011,6,1) создает дату 1 июля 2011 года.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...