MIF_E31221407_BE/src/utils/core/date.ts

32 lines
1.3 KiB
TypeScript

import dayjs from 'dayjs'
export function getStartOfWeek(dateInput: string | Date) {
const date = dayjs(dateInput)
const day = date.day() === 0 ? 7 : date.day() // 1 = Senin, 7 = Minggu
return date.subtract(day - 1, 'day').startOf('day')// Return: dayjs('YYYY-MM-Monday 00:00:00.000')
}
export function getEndOfWeek(dateInput: string | Date) {
const monday = getStartOfWeek(dateInput)
return monday.add(6, 'day').endOf('day')// Return: dayjs('YYYY-MM-Sunday 23:59:59.999')
}
export function getStartOfMonth(dateInput: string | Date) {
return dayjs(dateInput).startOf('month') // awal bulan: YYYY-MM-01 00:00:00.000
}
export function getEndOfMonth(dateInput: string | Date) {
return dayjs(dateInput).endOf('month') // akhir bulan: YYYY-MM-lastDay 23:59:59.999
}
export function getExpiredDateFromMonth(dateInput: string | Date, period = 1) {
return getStartOfMonth(dateInput).add(period, 'month').endOf('day').format('YYYY-MM-DD HH:mm:ss')
}
export function getExpiredDateFromWeek(dateInput: string | Date, period = 1) {
return getStartOfWeek(dateInput).add(period, 'week').endOf('day').format('YYYY-MM-DD HH:mm:ss')
}
export function getTotalDaysInNextMonth(dateInput: string | Date = new Date()) {
return getStartOfMonth(dateInput).add(1, 'month').daysInMonth()
}