Использование getTime в цикле For в скрипте листов Google - PullRequest
1 голос
/ 21 ноября 2019

Я пытаюсь запустить цикл for, который выглядит следующим образом:

function runMultipleDates() {

  var ss = SpreadsheetApp.getActiveSpreadsheet();
  //9/26/2018 is 1569477600000 and 2/28/2019 is 1551337200000; 9/21/2018 is 1537509600000
   
  for (var date1 = 1537596000000 /*9/21/2018*/; date1 < 1569477600000 /*9/26/2018*/; date1 +=86400000) {
       //runEverything();
   var date2 = new Date();
       date2 = date2.setTime(date1);
   ss.getSheetByName('Time Range').getRange("A3").setValue(date2);

 };
  
};

Моя цель - запустить функцию runEverything (), которая ссылается на дату, расположенную в ячейке A3 листа с именем Time Range. Пока дата в ячейке A3 меньше, чем 26.09.2008, цикл for должен запустить мою функцию runEverything, а затем установить новую дату в A3. Когда я выполняю тестовый цикл, setValue (date2) возвращает числовое значение, а не дату в этой ячейке (A3). Может кто-нибудь указать, как я могу вернуть формат даты, а не числовое значение даты? если есть более изящный способ достичь этого, я весь в ушах!

Спасибо за понимание!

1 Ответ

1 голос
/ 21 ноября 2019

Tanaike предложил использовать новую Date (date2) в setValue (), и это сработало. Мой последний сценарий выглядит примерно так:

function runMultipleDates() {

  var ss = SpreadsheetApp.getActiveSpreadsheet();
   
  for (var date1 = 1538200800000 ; date1 <= 1538719200000; date1 +=86400000) {
   runEverything();
   var date2 = new Date();
       date2 = date2.setTime(date1+86400000);
   ss.getSheetByName('Time Range').getRange("A3").setValue(new Date(date2));

 };
  
...