获取两个日期之间的所有日期

我有一个问题,用户选择一系列日期。 然后我需要找出这两个选定日期之间的日期。 他们通过jquery进入一些简单的东西

$('#from').val()+"-"+$('#to').val();

他们来自jqueryUI datepicker,他们只是看起来像

08/07/2013 - 08/09/2012

但我无法弄清楚如何逐步完成日期并确定两者之间的日期。 我需要特定的日期,但这会变得非常复杂,例如月末和每个月的不同天数。 在这个具体的例子中,我需要得到

08/07/2013, 08/08/2013, 08/09/2013

您可以使用getDate方法从日期选择器中获取值,因为这将返回Date对象。 然后,从开始日期开始将“当前”日期增加1天并将其添加到数组中,直到当前日期与结束日期相同。

请注意,在将其添加到数组between时,您需要创建一个新的Date(),否则您只需引用currentDate对象,所有值都将相同。

工作演示

 var start = $("#from").datepicker("getDate"), end = $("#to").datepicker("getDate"), currentDate = new Date(start.getTime()), between = [] ; while (currentDate <= end) { between.push(new Date(currentDate)); currentDate.setDate(currentDate.getDate() + 1); } 
  //start of with getting the dates from your array var between =[] for (var i = 0; i < arrayOfHolsInfoTbl.length; i++){ alert( holsInfoTblData[i].StartDate) alert(holsInfoTblData[i].EndStart) var datePickedStr1 = holsInfoTblData[i].StartDate; var datePickedDate1 = new Date(datePickedStr1)//converts string to date object var datePickedStr2 = holsInfoTblData[i].EndStart; var datePickedDate2 = new Date(datePickedStr1) while (datePickedDate1 <= datePickedDate2) { between.push(new Date(datePickedDate1)); datePickedDate1.setDate(datePickedDate1.getDate() + 1); } } //loop through array and print all dates that have been added to array for (var j = 0; j < between.length; j++) { alert("This is all the dates " + between[j]) }