我遇到一个用户选择日期范围的问题。然后我需要找出这两个选定日期之间的日期。他们通过jquery进入像
这样简单的东西 $('#from').val()+"-"+$('#to').val();
他们来自jqueryUI datepicker,他们看起来像
08/07/2013 - 08/09/2012
但我无法弄清楚如何逐步完成日期并确定介于两者之间的日期。我需要特定的日期,但这会变得非常复杂,例如月末和每个月的不同天数。在这个具体的例子中,我需要得到
08/07/2013, 08/08/2013, 08/09/2013
答案 0 :(得分:19)
您可以使用getDate
方法从日期选择器中获取值,因为这会返回Date对象。然后,从开始日期开始,将“当前”日期增加1天,并将其添加到数组中,直到当前日期与结束日期相同。
请注意,在将{Date}添加到between
数组时,您需要创建一个新的Date(),否则您只需引用currentDate
对象,所有值都将相同
<强> Working Demo 强>
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);
}
答案 1 :(得分: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])
}