How to get the days between 2 dates in JavaScript
Given two JavaScript `Date` objects, how can I get a list of the days (expressed as Date objects, too) between those 2 dates?
I had this problem: given two JavaScript Date
objects, how can I get a list of the days (expressed as Date objects, too) between those 2 dates?
Here’s a function to calculate that.
It gets 2 date objects as parameters, and returns an array of Date objects:
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
}
Example usage:
const today = new Date()
const threedaysFromNow = new Date(today)
threedaysFromNow.setDate( threedaysFromNow.getDate() + 3)
getDatesBetweenDates(today, threedaysFromNow)
If you also want to include the start and end dates, you can use this version that adds it at the end:
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
}
→ I wrote 17 books to help you become a better developer, download them all at $0 cost by joining my newsletter
→ JOIN MY CODING BOOTCAMP, an amazing cohort course that will be a huge step up in your coding career - covering React, Next.js - next edition February 2025