Javascript 两个相同的日期不一样
我正在使用GoogleSheets脚本编辑器,它使用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
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
和您正在使用的格式将不起作用。这是一个应用程序脚本的东西。