Javascript 两个相同的日期不一样

Javascript 两个相同的日期不一样,javascript,google-apps-script,google-sheets,Javascript,Google Apps Script,Google Sheets,我正在使用GoogleSheets脚本编辑器,它使用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.getFul

我正在使用GoogleSheets脚本编辑器,它使用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());
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
正如你所看到的,这是一个很好的例子。考虑到我已经以完全相同的格式解析了
date1
date2
日期值,我只能假设增加28天就是问题所在


我还可以试着弄清楚什么呢?

我的目标是比较两个日期;date1是单元格中的一个文本字符串加上28天,date2是今天。
这里我想你把date1和date2倒过来了。。代码date1.getDate()==date2.getDate()而不是date1.getTime()date2.getTime()你说得对谢谢@Reddy我更新了这个问题拼图不正确
.getDate()
返回日期。使用该选项将使5月29日==6月29日。在这种情况下,应用程序脚本不会将日期设置为日期字符串中的
GMT+01:00
时区。它使用脚本设置为的时区偏移调整时间。文件>项目属性>时区字段。可以在日期字符串中显式设置时区,但必须使用字符串格式:“月/日/年时区\u偏移量”,其中以长格式指定时区\u偏移量:必须更改日期字符串格式。使用
GMT+01:00
和您正在使用的格式将不起作用。这是一个应用程序脚本的东西。
我的目标是比较两个日期;date1是单元格中的一个文本字符串加上28天,date2是今天。
这里我想你把date1和date2倒过来了。。代码date1.getDate()==date2.getDate()而不是date1.getTime()date2.getTime()你说得对谢谢@Reddy我更新了这个问题拼图不正确
.getDate()
返回日期。使用该选项将使5月29日==6月29日。在这种情况下,应用程序脚本不会将日期设置为日期字符串中的
GMT+01:00
时区。它使用脚本设置为的时区偏移调整时间。文件>项目属性>时区字段。可以在日期字符串中显式设置时区,但必须使用字符串格式:“月/日/年时区\u偏移量”,其中以长格式指定时区\u偏移量:必须更改日期字符串格式。使用
GMT+01:00
和您正在使用的格式将不起作用。这是一个应用程序脚本的东西。