Skip to content

Instantly share code, notes, and snippets.

@jonathanborges
Last active November 7, 2018 13:44
Show Gist options
  • Save jonathanborges/092467191cef14bcc72a7214ed42c36f to your computer and use it in GitHub Desktop.
Save jonathanborges/092467191cef14bcc72a7214ed42c36f to your computer and use it in GitHub Desktop.
const { DateTime } = require('luxon')
function eachDays(d1, d2, response = 'DateTime') {
let parse = (date) => {
switch(date.constructor) {
case Date:
return DateTime.fromJSDate(date).startOf('day')
case String:
return DateTime.fromSQL(date).startOf('day')
case DateTime:
return date.startOf('day')
default:
throw new Error('Invalid Format')
}
}
let format = (date) => {
switch (response) {
case 'DateTime':
return date
case 'JSDate':
return date.toJSDate()
default:
return date.toFormat(response)
}
}
let d = [d1, d2].map(parse)
let temp = []
while (d[0] <= d[1]) {
temp.push(format(d[0]))
d[0] = d[0].plus({ days: 1 }).startOf('day')
}
return temp
}
exports.eachDays = eachDays
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment