2013-03-12 151 views
2

我试图计算两个日期之间的日子,但我不想只是天差异,我什么是写一个脚本,以显示在这两个给定的日期之间的所有实际日期.. 比如我有两个日期:jquery给定日期之间的差异

3/12/20133/15/2013

我想以某种方式得到这些日期:3/12/2013, 3/13/2013, 3/14/2013, 3/15/2013

这里是代码IVE写但这只是返回天

的区别
$(document).ready(function() { 

    var From = "03-12-2013"; 
    var To = "03-15-2013"; 
    var d1 = jQuery.datepicker.parseDate("mm-dd-yy", From); 
    var d2 = jQuery.datepicker.parseDate("mm-dd-yy", To); 

    var diff = 0; 
    if (d1 && d2) { 
     diff = Math.floor((d2.getTime() - d1.getTime())/86400000); // ms per day 
    } 
    console.log(diff); 
}); 

谢谢

+0

我真的不知道,但日期选择器,如果有到或。减去添加一天日期的方式,你可以尝试从循环一次约会到另一个,每次加/减去一个白天和节约该修改日期。但是在API文档中快速查看后,我找不到这样的东西,但也许你知道。 – 2013-03-12 10:05:01

回答

1

不看日期选择器(也许还有一个方法已经给你所需要的),根据你的代码,你可能只是做这样的事情:

var milisperday = 86400000, 
    days = [], 
    offset = (d1<d2)?d1:d2; 

for (var i = 1;i<=diff;i++){ 
    days.push(new Date(offset.getTime() + milisperday * i)); 
} 

console.log(days); 

现在days是一个包含所需日期作为日期对象的数组。

Example

+0

谢谢answer.i设法让它工作,问题是它“认为”所有的月份都有30天,所以如果我试图找出30/03/2013和05/04/2013之间的差异,给我看4天,和01/04/2013和05/04/2013一样 – 2013-03-12 11:12:58

+0

@ lucky13适合我:http://jsfiddle.net/7tQ4B/ – Christoph 2013-03-12 11:16:03

+0

在jsfiddle链接中,我只在控制台中获得了这个[] – 2013-03-12 11:21:31