两个相同的日期不一样

时间:2016-03-29 17:50:31

标签: javascript google-apps-script google-sheets

我使用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。鉴于我已经以完全相同的格式解析了date1date2个日期值,我只能假设添加28天是问题。

我还能尝试什么呢?

0 个答案:

没有答案