@ah0R

Как удалять строчки по истечению времени?

Имеется код:
function getColLastRow(column) {
  if (column && column.getLastRow) {
    return column.getCell(column.getLastRow(), 1).getNextDataCell(SpreadsheetApp.Direction.UP).getRow();
  }
  return 0;
}

function DeleteExpiredTime() {
  const target_column = 'F:F';
  const sheet = SpreadsheetApp.getActiveSheet();
  const col = sheet.getRange(target_column);
  const lr = getColLastRow(col);
  const currentTime = new Date().getTime();

  var values = sheet.getRange(1, col.getColumn(), lr, 1).getValues();

  for (var i = lr; i >= 1; i--) {
    var d = values[i-1][0];
    if (typeof d == 'object' && currentTime > new Date(d).getTime()) {
      sheet.deleteRow(i);
    }
  }
}


По логике данный код должен удалять все строчки в которых время уже является прошлым
Пример:
В строчке F3 время указано 20:59, сейчас время 21:59 и данный код должен удалить ее,
Но если В строчке F5 время указано 23:59, сейчас время 21:59, то данный код не должен ее удалять.

Но почему-то данный код удаляет ВСЕ строчки, где в столбце F есть время.
И я не понимаю, как это исправить
  • Вопрос задан
  • 148 просмотров
Решения вопроса 1
ProgrammerForever
@ProgrammerForever Куратор тега Google Apps Script
Учитель, автоэлектрик, программист, музыкант
const currentTime = new Date().getTime();
содержит и дату и время.
20:59 скорее всего - только время.
Чтобы оставить только время, можно сделать как-то так:
new Date() - new Date().setHours(0,0,0,0)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы