init commit,

This commit is contained in:
louiscklaw
2025-05-28 09:55:51 +08:00
commit efe70ceb69
8042 changed files with 951668 additions and 0 deletions

View File

@@ -0,0 +1,91 @@
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;
}

View File

@@ -0,0 +1,10 @@
/* eslint-disable no-bitwise */
// ----------------------------------------------------------------------
export function uuidv4() {
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {
const r = (Math.random() * 16) | 0;
const v = c === 'x' ? r : (r & 0x3) | 0x8;
return v.toString(16);
});
}