Consigue todas las fechas que caen entre dos fechas.

Tengo un problema donde el usuario selecciona un rango de fechas. Necesito averiguar qué fechas se encuentran entre esas dos fechas seleccionadas. Vienen a través de jQuery con algo tan simple como

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

están viniendo de jqueryUI datepicker y se ven como

08/07/2013 - 08/09/2012

pero no puedo averiguar cómo pasar por las fechas y determinar qué días intermedios. Necesito las fechas específicas, pero esto se complica mucho con cosas como el fin de mes y la cantidad de días diferentes en cada mes. En este ejemplo específico, necesitaría obtener

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

Puede capturar los valores de sus selectores de fecha utilizando el método getDate , ya que esto le devolverá un objeto Date. Luego, a partir de la fecha de inicio, incremente la fecha “actual” en 1 día y agréguela a una matriz hasta que la fecha actual sea la misma que la fecha de finalización.

Tenga en cuenta que deberá crear una nueva Fecha () cuando la agregue a la matriz between o, de lo contrario, solo hará referencia al objeto currentDate y todos sus valores serán los mismos.

Demo de trabajo

 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]) } 
    Intereting Posts