Я пытаюсь сравнить 2 даты в Google App Scripts, используя JavaScript.У меня проблема в том, что результат неверный, и я следовал нескольким предложениям по Stackoverflow, но он не работал.
Это мой код:
- это код дляполучение даты с сегодняшнего дня - 30 дней
var date = new Date();
var last_30 = date.setDate(date.getDate() - 30);
var delete_date = Utilities.formatDate(date, 'Etc/GMT', 'dd/MM/yyyy');
Это мой код:
- это код получения значений из электронной таблицы в формате даты
var row = values[i]; // Values from Spreadsheet cells
var dt = new Date(row[0]);
var year = dt.getFullYear();
var month = dt.getMonth() + 1 ;
var day = dt.getDate();
var cell_date_value = ('0' + dt.getDate()).slice(-2) + '/'
+ ('0' + (dt.getMonth()+1)).slice(-2) + '/'
+ dt.getFullYear();
Logger.log('cell:'+cell_date_value + ' delete:'+delete_date);
if (Date.parse(cell_date_value) > Date.parse(delete_date)) {
sheet.deleteRow((parseInt(i)+1) - rowsDeleted);
rowsDeleted++;
}
Это мой Logger.log ():
[19-05-06 15:19:40:579 CEST] cell_value:03/05/2019 delete_before:06/04/2019
[19-05-06 15:19:40:580 CEST] cell_value:03/05/2019 delete_before:06/04/2019
[19-05-06 15:19:40:581 CEST] cell_value:03/05/2019 delete_before:06/04/2019
[19-05-06 15:19:40:581 CEST] cell_value:03/04/2019 delete_before:06/04/2019
[19-05-06 15:19:40:582 CEST] cell_value:03/03/2019 delete_before:06/04/2019
[19-05-06 15:19:40:583 CEST] cell_value:03/03/2019 delete_before:06/04/2019
[19-05-06 15:19:40:584 CEST] cell_value:03/02/2019 delete_before:06/04/2019
Как вы можете видеть, cell_value
старше delete_before
в 4 последних строках, но все ещеэта ячейка не указывается в операторе if.typeOf
- это string
Я также попробовал это: (не работает):
var d1 = Date.parse(cell_value);
var d2 = Date.parse(delete_before);
if (d1 < d2) {
alert ("Error!");
}
А это:
function isLater(str1, str2)
{
return new Date(str1) > new Date(str2);
}
Кто-нибудь может увидеть проблему?