Skip to content

Instantly share code, notes, and snippets.

@miguelmota
Last active February 7, 2024 23:43
Show Gist options
  • Save miguelmota/7905510 to your computer and use it in GitHub Desktop.
Save miguelmota/7905510 to your computer and use it in GitHub Desktop.
Get dates in between two dates with JavaScript.
// Returns an array of dates between the two dates
function getDates (startDate, endDate) {
const dates = []
let currentDate = startDate
const addDays = function (days) {
const date = new Date(this.valueOf())
date.setDate(date.getDate() + days)
return date
}
while (currentDate <= endDate) {
dates.push(currentDate)
currentDate = addDays.call(currentDate, 1)
}
return dates
}
// Usage
const dates = getDates(new Date(2013, 10, 22), new Date(2013, 11, 25))
dates.forEach(function (date) {
console.log(date)
})
@anhtuank7c
Copy link

I would convert it to TypeScript version.

const getDates = (startDate: Date, endDate: Date) => {
  const dates = []
  let currentDate = startDate
  const addDays = (currentDate: Date, days: number) => {
    const date = new Date(currentDate)
    date.setDate(date.getDate() + days)
    return date
  }
  while (currentDate <= endDate) {
    dates.push(currentDate)
    currentDate = addDays(currentDate, 1)
  }
  return dates
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment