Google Script - неверный месяц в дате - PullRequest
0 голосов
/ 06 марта 2020

У меня проблема с распознаванием даты в Google Script. У меня есть код, где мне нужно добавить дни к определенной дате. Однако код возвращает неправильный месяц (выше, а не ниже, что было бы типичной проблемой ГАЗА). Я написал следующий код для проверки поведения:

             var datumStart = new Date();
             datumStart = arrayTimesheet[5][7];
             var datum2 = new Date();
             datum2.setDate(datumStart.getDate());

и получаю следующие результаты для двух переменных:

datumStart   Date   Mon Feb 17 2020 09:00:00 GMT+0100 (Central European Standard Time)
datum2       Date   Tue Mar 17 2020 22:50:39 GMT+0100 (Central European Standard Time)

Массив [5] [7] - это значение ячейки листа Google со значением 2020-17-02.

Эта переменная datum2 является просто тестовой переменной, чтобы понять ошибку.

Кто-нибудь знает, что происходит не так?

1 Ответ

3 голосов
/ 06 марта 2020

Javascripts getDate () и setDate () функции получают и устанавливают День месяца.

Итак, ваш код работает так, как ожидалось, вы создание экземпляра даты datum2 в марте, поэтому это дата в марте (текущая дата / время), позже вы используете setDate (), чтобы установить его на 17 марта.

Чтобы добавить дни к дате, Вы можете создать новую дату, используя значения из вашей существующей даты, плюс дополнительные дни, например, здесь мы получаем дату 5 дней в будущем:

   var future_day = new Date(datumStart.getFullYear(),datumStart.getMonth(),datum.getDate()+5);

Обратите внимание, что базовая дата Date Javascript c равно solid, если ваше количество дней пересекает границу месяца или года, результаты будут правильными. (например, если вы добавите 31 день, вы получите правильную дату в следующем месяце)

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