Files
2025-05-28 09:55:51 +08:00

92 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;
}