55 lines
1.4 KiB
TypeScript
55 lines
1.4 KiB
TypeScript
export const ONE_DAY = 24 * 60 * 60 * 1000
|
|
|
|
// format the date to the format we want
|
|
export const formatDate = (date: Date): string => {
|
|
const year = date.getUTCFullYear()
|
|
const month = (date.getUTCMonth() + 1 + '').padStart(2, '0')
|
|
const day = (date.getUTCDate() + '').padStart(2, '0')
|
|
return `${year}${month}${day}`
|
|
}
|
|
|
|
// get formated datestring of yesterday
|
|
export const yesterday = (date?: Date) => {
|
|
date = date || new Date()
|
|
date.setUTCDate(date.getUTCDate() - 1)
|
|
return date
|
|
}
|
|
|
|
export const nextday = (date?: Date) => {
|
|
date = date || new Date()
|
|
date.setUTCDate(date.getUTCDate() + 1)
|
|
return date
|
|
}
|
|
|
|
// calc days between two Date
|
|
export function daysBetween(date1: Date, date2: Date) {
|
|
// hours*minutes*seconds*milliseconds
|
|
const diffInMs = Math.abs(date1.getTime() - date2.getTime())
|
|
const diffInDays = Math.round(diffInMs / ONE_DAY)
|
|
return diffInDays
|
|
}
|
|
|
|
// get begin of one day
|
|
export const getDayBegin = (date: Date): Date => {
|
|
let result = new Date(date.getTime())
|
|
result.setUTCHours(0, 0, 0, 0)
|
|
return result
|
|
}
|
|
|
|
// get begin of n day ago
|
|
export const getNDayAgo = (n: number, begin: boolean): Date => {
|
|
const date = new Date(Date.now() - n * ONE_DAY)
|
|
if (begin) {
|
|
return getDayBegin(date)
|
|
} else {
|
|
return date
|
|
}
|
|
}
|
|
|
|
// get begin of this month
|
|
export const getMonthBegin = (date: Date): Date => {
|
|
const year = date.getUTCFullYear()
|
|
const month = date.getUTCMonth()
|
|
return new Date(year, month, 1)
|
|
}
|