Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

There are several ways to obtain an array of dates that fall between two given dates using JavaScript:

  1. Using a loop:
function getDates(startDate, endDate) {
  var dates = [];
  var currentDate = startDate;
  while (currentDate <= endDate) {
    dates.push(new Date(currentDate));
    currentDate.setDate(currentDate.getDate() + 1);
  }
  return dates;
}

// Usage example
var startDate = new Date('2021-10-01');
var endDate = new Date('2021-10-10');
var dates = getDates(startDate, endDate);
console.log(dates); // array of dates between startDate and endDate
  1. Using Array.from() method:
function getDates(startDate, endDate) {
  return Array.from(
      {length: (endDate - startDate) / (1000 * 60 * 60 * 24) + 1},
      (v, i) => new Date(startDate.getTime() + i * (1000 * 60 * 60 * 24))
    );
}

// Usage example
var startDate = new Date('2021-10-01');
var endDate = new Date('2021-10-10');
var dates = getDates(startDate, endDate);
console.log(dates); // array of dates between startDate and endDate
  1. Using moment.js library:
function getDates(startDate, endDate) {
  var dates = [];
  var currentDate = moment(startDate);
  while (currentDate <= moment(endDate)) {
    dates.push(currentDate.toDate());
    currentDate = currentDate.add(1, 'days');
  }
  return dates;
}

// Usage example
var startDate = new Date('2021-10-01');
var endDate = new Date('2021-10-10');
var dates = getDates(startDate, endDate);
console.log(dates); // array of dates between startDate and endDate