Files
pfadi-bussle/helpers/date.ts
2020-09-29 23:30:38 +02:00

55 lines
1.1 KiB
TypeScript

import { parse, format, addDays } from 'date-fns'
const FRONTEND_FORMAT = 'dd.MM.yyyy'
const BACKEND_FORMAT = 'yyyy-MM-dd'
export function getDays({
startDate,
endDate,
}: {
startDate: Date
endDate: Date
}) {
let currentDay = new Date(startDate.getTime())
const days = [dateFormatBackend(currentDay)]
if (!endDate) {
return days
}
while (currentDay < endDate) {
currentDay = addDays(currentDay, 1)
days.push(dateFormatBackend(currentDay))
}
return days
}
function dateFormat(date: Date, formatString: string) {
if (!date) {
return null
}
return format(date, formatString)
}
export function dateFormatBackend(date: Date) {
return dateFormat(date, BACKEND_FORMAT)
}
export function dateFormatFrontend(date: Date) {
return dateFormat(date, FRONTEND_FORMAT)
}
function dateParse(input: string, formatString: string) {
const date = parse(input, formatString, new Date())
if (date.getTime() !== NaN) {
return date
}
return null
}
export function dateParseFrontend(input: string) {
return dateParse(input, FRONTEND_FORMAT)
}