duoyun-ui
Version:
A lightweight desktop UI component library, implemented using Gem
81 lines • 2.77 kB
TypeScript
/**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