74 lines
1.6 KiB
TypeScript
74 lines
1.6 KiB
TypeScript
import dayjs from 'dayjs';
|
|
import duration from 'dayjs/plugin/duration';
|
|
|
|
// ----------------------------------------------------------------------
|
|
|
|
dayjs.extend(duration);
|
|
|
|
export function setDate(now: Date, options: { days?: number; hours?: number; minutes?: number }) {
|
|
const month = now.getMonth() + 1;
|
|
const year = now.getFullYear();
|
|
const today = now.getDate();
|
|
|
|
const { days, hours = 0, minutes = 0 } = options;
|
|
|
|
return new Date(`${year}-${month}-${days ?? today} ${hours}:${minutes}`).toJSON();
|
|
}
|
|
|
|
export const subHours = (value: number, option: 'years' | 'months' | 'days' | 'hours' | 'minutes' | 'seconds' | 'milliseconds') =>
|
|
dayjs().subtract(value, option).format();
|
|
|
|
// years,
|
|
// months,
|
|
// days,
|
|
// hours,
|
|
// minutes,
|
|
// seconds,
|
|
// milliseconds,
|
|
|
|
export type DurationProps = {
|
|
years?: number;
|
|
months?: number;
|
|
days?: number;
|
|
hours?: number;
|
|
minutes?: number;
|
|
seconds?: number;
|
|
milliseconds?: number;
|
|
};
|
|
|
|
export function fSub({ years = 0, months = 0, days = 0, hours = 0, minutes = 0, seconds = 0, milliseconds = 0 }: DurationProps) {
|
|
const result = dayjs()
|
|
.subtract(
|
|
dayjs.duration({
|
|
years,
|
|
months,
|
|
days,
|
|
hours,
|
|
minutes,
|
|
seconds,
|
|
milliseconds,
|
|
})
|
|
)
|
|
.format();
|
|
|
|
return result;
|
|
}
|
|
|
|
export function fAdd({ years = 0, months = 0, days = 0, hours = 0, minutes = 0, seconds = 0, milliseconds = 0 }: DurationProps) {
|
|
const result = dayjs()
|
|
.add(
|
|
dayjs.duration({
|
|
years,
|
|
months,
|
|
days,
|
|
hours,
|
|
minutes,
|
|
seconds,
|
|
milliseconds,
|
|
})
|
|
)
|
|
.format();
|
|
|
|
return result;
|
|
}
|