Как получить дни между двумя датами в JavaScript

Учитывая два JavaScriptDateобъектов, как я могу получить список дней (также выраженных как объекты Date) между этими двумя датами?

У меня была такая проблема: учитывая два JavaScriptDateобъектов, как я могу получить список дней (также выраженных как объекты Date) между этими двумя датами?

Вот функция для этого.

Он получает 2 объекта даты в качестве параметров и возвращает массив объектов Date:

const getDatesBetweenDates = (startDate, endDate) => {
  let dates = []
  //to avoid modifying the original date
  const theDate = new Date(startDate)
  while (theDate < endDate) {
    dates = [...dates, new Date(theDate)]
    theDate.setDate(theDate.getDate() + 1)
  }
  return dates
}

Пример использования:

const today = new Date()
const threedaysFromNow = new Date(today)
threedaysFromNow.setDate( threedaysFromNow.getDate() + 3)

getDatesBetweenDates(today, threedaysFromNow)

Если вы также хотите включить даты начала и окончания, вы можете использовать эту версию, которая добавляет их в конце:

const getDatesBetweenDates = (startDate, endDate) => {
  let dates = []
  //to avoid modifying the original date
  const theDate = new Date(startDate)
  while (theDate < endDate) {
    dates = [...dates, new Date(theDate)]
    theDate.setDate(theDate.getDate() + 1)
  }
  dates = [...dates, endDate]
  return dates
}

Скачать мою бесплатнуюРуководство для начинающих по JavaScript


Больше руководств по js: