我有两个存储日期的变量,我正在尝试减去它们。
我已经打印出了值和减法,但是我不知道这里发生了什么。
代码
var dateRan = new Date().toLocaleString("en-US", {timeZone: "America/New_York"});
console.log(
"date1 is "+ new Date(firstDate*1000).toLocaleString("en-US", {timeZone: "America/New_York"})
+ " and date2 is "+ dateRan
+ " and date1 - date2 is "+ Math.abs((new Date(firstDate*1000)-dateRan)));
从日志中:
date1 is 7/5/2020, 10:44:37 PM and date2 is 7/5/2020, 10:22:30 PM and date1 - date2 is NaN
我本可以发誓这在几周前就可以正常工作-我不确定发生了什么变化。
答案 0 :(得分:1)
dateRan是一个字符串;具体来说,新的Date()由toLocaleString()转换为String。
一个对象减去一个字符串会产生Nan。
一个对象加一个字符串产生一个字符串。这会产生奇怪的结果。
var dateOne = new Date().toLocaleString("en-US", {timeZone: "America/New_York"});
var dateTwo = new Date();
console.log(dateOne - dateTwo); // NaN
console.log(dateOne + dateTwo); // 7/5/2020, 10:47:01 PMSun Jul 05 2020 22:47:12 GMT-0400 (Eastern Daylight Time)
console.log(new Date() - new Date()); // 0
console.log(new Date() + new Date()); // Sun Jul 05 2020 22:52:51 GMT-0400 (Eastern Daylight Time)Sun Jul 05 2020 22:52:51 GMT-0400 (Eastern Daylight Time)