ISO8601日期格式的时间的时间日期

我想做同样的事情我怎样才能获得JavaScript中两个日期之间的天数?

但是我想在这个日期格式上做同样的事情: 2000-12-31

 function daysBetween(date1String, date2String){ var d1 = new Date(date1String); var d2 = new Date(date2String); return (d2-d1)/(1000*3600*24); } console.log( daysBetween('2000-12-31', '2005-05-04') ); //-> 1585 

ISO8601日期字符串可由JavaScript直接识别。 无需自己解析它们。

试试这个。

 var toDate = "2000-12-31"; var fromDate = "2000-10-30"; var diff = Math.floor(( Date.parse(toDate) - Date.parse(fromDate) ) / 86400000); 

如果你用更多的选票来检查答案,而不是你提供的链接上的标记答案,你就不会问这个问题。 🙂

嗯,这不是jQuery,但同样容易使用。 查看DateJS 。 可以解析日期,差异等。

这里的其他解决方案没有考虑TimeZone信息(如果这是你想要的那就没问题)但我遇到了这样的问题:
我有两个日期: Thu Mar 01 2012 00:00:00 GMT + 0100Sat Mar 31 2012 00:00:00 GMT + 0200 ,这将在Math.floor之前29.95833天,因此在发言后29天。 这不是我期待的30天。 显然,夏令时已经开始,并将其中一天缩短了一个小时。

这是我的解决方案,它考虑了TimeZones:

 function daysBetween(date1String, date2String) { var ONE_DAY = 1000 * 60 * 60 * 24; var ONE_MINUTE = 1000 * 60; var d1 = new Date(date1String); var d2 = new Date(date2String); var d1_ms = d1.getTime() - d1.getTimezoneOffset() * ONE_MINUTE; var d2_ms = d2.getTime() - d2.getTimezoneOffset() * ONE_MINUTE; return Math.floor(d1_ms - d2_ms/ONE_DAY); }