我使用Google表格脚本编辑器,它使用JavaScript。我的目的是比较两个日期; date2
是单元格中的文本字符串加上28天,date1
是今天。
这是我今天检索日期并将其转换为对象的方式:
function getToday() {
var today = new Date();
var dd = today.getDate();
var mm = today.getMonth()+1; //January is 0!
var yyyy = today.getFullYear();
if(dd<10) {
dd='0'+dd
}
if(mm<10) {
mm='0'+mm
}
return dd+'/'+mm+'/'+yyyy;
}
function stringToDate(str1){ //
var dt1 = parseInt(str1.substring(0,2));
var mon1 = parseInt(str1.substring(3,5));
var yr1 = parseInt(str1.substring(6,10));
var date1 = new Date(yr1, mon1-1, dt1);
return date1;
}
date1 = stringToDate(getToday());
这是我获取date1
的方式,添加28天并将其转换为对象:
date2 = SpreadsheetApp.getActiveSheet().getRange('J4').getValue();
date2 = new Date(date2.setDate(date2.getDate() + 28));
date2 = stringToDate(date2);
这是我进行比较的方式:
date1.getTime() === date2.getTime();
以上始终返回false。我在各个阶段进行打印,结果如下:
Logger.log(date1)
Tue Mar 29 00:00:00 GMT+01:00 2016
Logger.log(date2)
Tue Mar 29 00:00:00 GMT+01:00 2016
Logger.log(date1.getTime());
1.459206E12
Logger.log(date2.getTime());
1.4616252E12
Logger.log(date1.getTime() === date2.getTime());
false
如您所见,getTime() method returns different values which are the number of milliseconds since epoch。鉴于我已经以完全相同的格式解析了date1
和date2
个日期值,我只能假设添加28天是问题。
我还能尝试什么呢?