Преобразование меток времени в даты в скрипте Google - PullRequest
0 голосов
/ 11 октября 2018

Я пишу код, который нацелен на столбец с датами, и я хотел бы получить даты и сравнить их с текущей датой, чтобы я мог получить разницу между ними.

Я столкнулся спроблема у меня возникла проблема решения.Кажется, что когда я использовал .getValues ​​в моем диапазоне, он помещал каждую метку времени в массиве, а затем эти массивы в другом массиве.Например: [[(новая дата (1539619200000))], [(новая дата (1540396800000))], [(новая дата (1540828800000))]]

Я хочу разместить все значения в 1только массив, так что я могу начать решать, как преобразовать метки времени в обычные даты.Я тоже новичок в этом, поэтому прошу прощения, если это кажется основным вопросом.

function datesincolumn() //collects only the date values in range
{

 var ss = SpreadsheetApp.getActiveSpreadsheet();
 var sheet = ss.getSheets()[0];
 var lastRow = sheet.getLastRow(); //will identify last row with any data 
 entered
 var range = sheet.getRange('D2:D' + lastRow); //will get range of cells 
 with data present
 var dates = range.getValues();//gets all values in the range
 var CurrentDate = new Date();
 var timestamps = [];

 for (i = 0; i <= dates.length; i++)
 {
   if (dates[i] >= i)
   {
     timestamps.push(dates[i]);
   }

 }

  Logger.log(dates);

}

1 Ответ

0 голосов
/ 11 октября 2018

Когда вы используете .getValues(), вы всегда получаете 2-мерный массив.Внешний массив представляет строку, а внутренний массив представляет столбцы.Поскольку вы получаете только один столбец, вы можете просто добавить [0] к вашему dates[i].

function datesincolumn() { //collects only the date values in range  
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheets()[0];
  var lastRow = sheet.getLastRow(); //will identify last row with any data entered
  var range = sheet.getRange('D2:D' + lastRow); //will get range of cells with data present
  var dates = range.getValues();//gets all values in the range
  var CurrentDate = new Date();
  var timestamps = [];
  for (var i = 0; i <= dates.length; i++) {
    var date = dates[i][0];
    if (date >= i)
      timestamps.push(date);
  }
  Logger.log(dates);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...