Files
HKSingleParty/03_source/cms_backend/src/utils/set-date.ts
louiscklaw b7cd25b614 build ok,
2025-06-15 11:28:24 +08:00

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