我想做同样的事情 How do I get the number of days between two dates in JavaScript?
但我希望在此日期格式上执行相同操作:2000-12-31
。
答案 0 :(得分:9)
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直接识别。不需要自己解析它们。
答案 1 :(得分:2)
试试这个。
var toDate = "2000-12-31";
var fromDate = "2000-10-30";
var diff = Math.floor(( Date.parse(toDate) - Date.parse(fromDate) ) / 86400000);
如果你用更多的选票来检查答案而不是你提供的链接上的标记答案,你就不会问这个问题。 :)
答案 2 :(得分:1)
嗯,这不是jQuery,但同样容易使用。查看DateJS。可以解析日期,差异等。
答案 3 :(得分:0)
此处的其他解决方案未考虑TimeZone信息(如果这是您想要的,那就没问题了)
但我遇到了这样的问题:
我有两个约会:
Thu Mar 01 2012 00:00:00 GMT + 0100 和 Sat 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);
}