我试图将“今天的日期”作为变量,以便能够比较自从电子表格中注册日期以来的情况。
但是我尝试过语法:
var now = new Date();
但是它返回
1899年12月31日。
我该如何解决?
function onEdit(event) {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var s = event.source.getActiveSheet();
var r = event.source.getActiveRange();
var now = new Date();
if(r.getColumn() == 1 && r.getValue() <= (now -10)) {
var row = r.getRow();
var numColumns = s.getLastColumn();
s.getRange(row, 1, 1, numColumns).setBackgroundColor('#DBFF33');
ss.getRange('B3').setValue(now);
}
else {
}
}
答案 0 :(得分:0)
Google Apps脚本日期对象与核心JavaScript日期对象相似,但略有不同。 reference会详细介绍。
在Date Math部分中,他们建议使用date.getTime()函数计算日期,并加上或减去毫秒,并显式创建一个新日期:
var MILLIS_PER_DAY = 1000 * 60 * 60 * 24;
var checkDate = new Date(now.getTime() - (MILLIS_PER_DAY * 10);
从Date对象中减去10似乎只是将其转换为整数,并且不再将其识别为日期。
因此,要检查日期是否超过10天,您应该执行以下操作:
function onEdit(event) {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var s = event.source.getActiveSheet();
var r = event.source.getActiveRange();
var now = new Date();
var MILLIS_PER_DAY = 1000 * 60 * 60 * 24;
var checkDate = new Date(now.getTime() - (MILLIS_PER_DAY * 10));
if (r.getColumn() == 1 && r.getValue() <= checkDate) {
var row = r.getRow();
var numColumns = s.getLastColumn();
s.getRange(row, 1, 1, numColumns).setBackgroundColor('#DBFF33');
ss.getRange('B3').setValue(now);
} else {
}
}