JS 日期减法返回 NaN

我有两个变量存储日期,我试图减去它们。


我已经打印出值和减法,但我不知道这里出了什么问题。


代码


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

几周前我可以发誓这一切正常——我不确定发生了什么变化。


神不在的星期二
浏览 178回答 1
1回答

翻过高山走不出你

dateRan 是一个字符串;具体来说,新的 Date() 通过 toLocaleString() 转换为字符串。一个 Object 减去一个 String 产生 Nan。一个对象加上一个字符串产生一个字符串。这会产生奇怪的结果。var dateOne = new Date().toLocaleString("en-US", {timeZone: "America/New_York"});var dateTwo = new Date();console.log(dateOne - dateTwo); // NaNconsole.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());  // 0console.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)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript