UNPKG

duoyun-ui

Version:

A lightweight desktop UI component library, implemented using Gem

81 lines 2.77 kB
/**Parse Date/number to object */ export declare function parseDate(date?: number | Date): { year: string; month: string; day: string; hour: string; minute: string; second: string; }; type CalculateUnit = 'h' | 'm' | 's' | 'ms'; type Unit = 'Y' | 'M' | 'w' | 'd' | CalculateUnit; type RelativeTimeFormatUnit = Exclude<Unit, 'ms'>; type RelativeTimeFormatOptions = { rtf?: Intl.RelativeTimeFormat; min?: number; lang?: string | string[]; }; export type NarrowRelativeTime = `${number}${RelativeTimeFormatUnit}`; /** * @example * * ```ts * parseNarrowTimeRange('d'); * parseNarrowTimeRange('m'); * ``` */ export declare function parseNarrowTimeRange(str: undefined | null): undefined; export declare function parseNarrowTimeRange(str: RelativeTimeFormatUnit): [Time, Time]; export declare function parseNarrowTimeRange(str: string | null | undefined): [Time, Time] | undefined; /** * @example * * ```ts * parseNarrowRelativeTime('2d'); * parseNarrowRelativeTime('-2m'); * ``` */ export declare function parseNarrowRelativeTime(str: undefined | null): undefined; export declare function parseNarrowRelativeTime(str: NarrowRelativeTime): Time; export declare function parseNarrowRelativeTime(str: string | null | undefined): Time | undefined; /** * Provide some convenient operation methods for Date/Time */ export declare class Time extends Date { #private; get isInvalidTime(): boolean; formatToParts(opt?: Intl.DateTimeFormatOptions): Intl.DateTimeFormatPart[]; format(opt?: string | Intl.DateTimeFormatOptions): string; subtract(number: number, unit: Unit): this; add(number: number, unit: Unit): this; startOf(unit: Unit): this; endOf(unit: Unit): this; isSame<T extends Date>(d: T | number, unit: Unit): boolean; /**@deprecated */ isSome: <T extends Date>(d: T | number, unit: Unit) => boolean; diff<T extends Date>(d: T | number, unit?: Unit): number; /** * new D().relativeTimeFormat(new D().add(40, 'd'), { unitLimit: 2, lang: 'zh' }) => '40天后' */ relativeTimeFormat(date: Date | Time | number, { min, lang, rtf }?: RelativeTimeFormatOptions): string; } /**Parse timestamp to Duration object */ export declare function parseDuration(ms: number): { number: string; unit: string; }; export declare function parseDurationToParts(ms: number, hasDays?: boolean): { days: number; hours: number; minutes: number; seconds: number; milliseconds: number; }; interface FormatDurationOptions { /** HH:mm:ss */ numeric?: boolean; style?: Intl.RelativeTimeFormatStyle; } export declare function formatDuration(ms: number, { numeric, style }?: FormatDurationOptions): any; export {}; //# sourceMappingURL=time.d.ts.map