vtils
Version:
一个面向业务的 JavaScript/TypeScript 实用程序库。
435 lines (410 loc) • 14 kB
TypeScript
/**
* 日期时间工具库。基于 {@link https://date-fns.org/v2.14.0/docs/Getting-Started | date-fns}。
*
* @packageDocumentation
*/
import { enUS as enUSLocale } from 'date-fns/locale';
import { zhCN as zhCNLocale } from 'date-fns/locale';
/**
* 增强版的 toDate,支持:
* - 秒时间戳、毫秒时间戳;
* - Date 实例;
* - 符合 ISO 标准的时间字符串。
*
* @param value 要转换的值
* @returns 返回转换后的 Date 实例
*/
export declare function anyToDate(value: string | number | Date): Date;
export { enUSLocale }
/**
* 格式化日期。
*
* @public
* @param date 要格式化的日期,支持 Date、秒或毫秒时间戳
* @param renderer 渲染器
* @returns 返回格式化后的日期
* @example
* ```typescript
* formatDate(
* new Date(2020, 5 - 1, 20, 13, 14, 21),
* _ => `${_.yyyy}-${_.mm}-${_.dd} ${_.hh}:${_.ii}:${_.ss}`,
* ) // => '2020-05-20 13:14:21'
* ```
*/
export declare function formatDate(date: Date | number, renderer: FormatDateRenderer): string;
/**
* 日期格式化占位符。
*
* @public
*/
export declare enum FormatDatePlaceholder {
/**
* 年:`44, 1, 1900, 2017`
*/
y = "y",
/**
* 年:`0044, 0001, 1900, 2017`
*/
yyyy = "yyyy",
/**
* 月:`1, 2, ..., 12`
*/
m = "M",
/**
* 月:`01, 02, ..., 12`
*/
mm = "MM",
/**
* 日:`1, 2, ..., 31`
*/
d = "d",
/**
* 日:`01, 02, ..., 31`
*/
dd = "dd",
/**
* 时:`0, 1, 2, ..., 23`
*/
h = "H",
/**
* 时:`00, 01, 02, ..., 23`
*/
hh = "HH",
/**
* 分:`0, 1, ..., 59`
*/
i = "m",
/**
* 分:`00, 01, ..., 59`
*/
ii = "mm",
/**
* 秒:`0, 1, ..., 59`
*/
s = "s",
/**
* 秒:`00, 01, ..., 59`
*/
ss = "ss"
}
/**
* 日期格式化渲染器。
*
* @public
* @param placeholders 占位符
* @returns 返回渲染字符串
*/
export declare type FormatDateRenderer = ((placeholders: typeof FormatDatePlaceholder) => string) | string;
/**
* 将时间转化为 `xxx前` 表示。
*
* @param date 时间
*/
export declare function formatDistanceAgo(date: number | Date): string;
/**
* 将时间转化为 `xxx前/后` 表示。
*
* @param date 时间
* @param baseDate 基准时间(默认当前时间)
*/
export declare function formatDistancePlus(date: Date, baseDate?: Date): string;
export declare function intervalToRestrictiveDuration(start: string | number | Date, end: string | number | Date, target?: IntervalToRestrictiveDurationTarget): IntervalToRestrictiveDurationResult;
export declare interface IntervalToRestrictiveDurationResult {
years: number;
months: number;
days: number;
hours: number;
minutes: number;
seconds: number;
milliseconds: number;
}
export declare type IntervalToRestrictiveDurationTarget = 'year' | 'month' | 'day' | 'hour' | 'minute' | 'second' | 'millisecond';
/**
* @deprecated use `import { ms } from 'vtils'` instead
*/
export declare const ms: typeof ms_2;
/**
* 获取毫秒值。
*
* @param value 值
* @param unit 单位
* @param returnSeconds 是否返回秒值
*/
declare function ms_2(value: number, unit: MsUnit, returnSeconds?: boolean): number;
/**
* 获取毫秒值。
*
* @param value 值
* @param returnSeconds 是否返回秒值
*/
declare function ms_2(value: MsValue, returnSeconds?: boolean): number;
declare type MsNumberValue = number;
declare type MsStringValue = `${number}${MsUnit}`;
declare type MsUnit = 'y' | 'w' | 'd' | 'h' | 'm' | 's' | 'ms';
declare type MsValue = MsNumberValue | MsStringValue;
/**
* 数字星期。
*
* @public
*/
export declare type NumeralDay = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7;
/**
* 数字星期转中文星期。`0` 和 `7` 都视为星期日。
*
* @public
* @param day 数字的星期几
* @returns 返回中文的星期几
* @example
* ```typescript
* numeralDayToChineseDay(0) // => 日
* numeralDayToChineseDay(1) // => 一
* numeralDayToChineseDay(5) // => 五
* numeralDayToChineseDay(7) // => 日
* ```
*/
export declare function numeralDayToChineseDay(day: NumeralDay): string;
export { zhCNLocale }
export * from "date-fns/add";
export * from "date-fns/addBusinessDays";
export * from "date-fns/addDays";
export * from "date-fns/addHours";
export * from "date-fns/addISOWeekYears";
export * from "date-fns/addMilliseconds";
export * from "date-fns/addMinutes";
export * from "date-fns/addMonths";
export * from "date-fns/addQuarters";
export * from "date-fns/addSeconds";
export * from "date-fns/addWeeks";
export * from "date-fns/addYears";
export * from "date-fns/areIntervalsOverlapping";
export * from "date-fns/clamp";
export * from "date-fns/closestIndexTo";
export * from "date-fns/closestTo";
export * from "date-fns/compareAsc";
export * from "date-fns/compareDesc";
export * from "date-fns/constructFrom";
export * from "date-fns/daysToWeeks";
export * from "date-fns/differenceInBusinessDays";
export * from "date-fns/differenceInCalendarDays";
export * from "date-fns/differenceInCalendarISOWeekYears";
export * from "date-fns/differenceInCalendarISOWeeks";
export * from "date-fns/differenceInCalendarMonths";
export * from "date-fns/differenceInCalendarQuarters";
export * from "date-fns/differenceInCalendarWeeks";
export * from "date-fns/differenceInCalendarYears";
export * from "date-fns/differenceInDays";
export * from "date-fns/differenceInHours";
export * from "date-fns/differenceInISOWeekYears";
export * from "date-fns/differenceInMilliseconds";
export * from "date-fns/differenceInMinutes";
export * from "date-fns/differenceInMonths";
export * from "date-fns/differenceInQuarters";
export * from "date-fns/differenceInSeconds";
export * from "date-fns/differenceInWeeks";
export * from "date-fns/differenceInYears";
export * from "date-fns/eachDayOfInterval";
export * from "date-fns/eachHourOfInterval";
export * from "date-fns/eachMinuteOfInterval";
export * from "date-fns/eachMonthOfInterval";
export * from "date-fns/eachQuarterOfInterval";
export * from "date-fns/eachWeekOfInterval";
export * from "date-fns/eachWeekendOfInterval";
export * from "date-fns/eachWeekendOfMonth";
export * from "date-fns/eachWeekendOfYear";
export * from "date-fns/eachYearOfInterval";
export * from "date-fns/endOfDay";
export * from "date-fns/endOfDecade";
export * from "date-fns/endOfHour";
export * from "date-fns/endOfISOWeek";
export * from "date-fns/endOfISOWeekYear";
export * from "date-fns/endOfMinute";
export * from "date-fns/endOfMonth";
export * from "date-fns/endOfQuarter";
export * from "date-fns/endOfSecond";
export * from "date-fns/endOfToday";
export * from "date-fns/endOfTomorrow";
export * from "date-fns/endOfWeek";
export * from "date-fns/endOfYear";
export * from "date-fns/endOfYesterday";
export * from "date-fns/format";
export * from "date-fns/formatDistance";
export * from "date-fns/formatDistanceStrict";
export * from "date-fns/formatDistanceToNow";
export * from "date-fns/formatDistanceToNowStrict";
export * from "date-fns/formatDuration";
export * from "date-fns/formatISO";
export * from "date-fns/formatISO9075";
export * from "date-fns/formatISODuration";
export * from "date-fns/formatRFC3339";
export * from "date-fns/formatRFC7231";
export * from "date-fns/formatRelative";
export * from "date-fns/fromUnixTime";
export * from "date-fns/getDate";
export * from "date-fns/getDay";
export * from "date-fns/getDayOfYear";
export * from "date-fns/getDaysInMonth";
export * from "date-fns/getDaysInYear";
export * from "date-fns/getDecade";
export * from "date-fns/getDefaultOptions";
export * from "date-fns/getHours";
export * from "date-fns/getISODay";
export * from "date-fns/getISOWeek";
export * from "date-fns/getISOWeekYear";
export * from "date-fns/getISOWeeksInYear";
export * from "date-fns/getMilliseconds";
export * from "date-fns/getMinutes";
export * from "date-fns/getMonth";
export * from "date-fns/getOverlappingDaysInIntervals";
export * from "date-fns/getQuarter";
export * from "date-fns/getSeconds";
export * from "date-fns/getTime";
export * from "date-fns/getUnixTime";
export * from "date-fns/getWeek";
export * from "date-fns/getWeekOfMonth";
export * from "date-fns/getWeekYear";
export * from "date-fns/getWeeksInMonth";
export * from "date-fns/getYear";
export * from "date-fns/hoursToMilliseconds";
export * from "date-fns/hoursToMinutes";
export * from "date-fns/hoursToSeconds";
export * from "date-fns/interval";
export * from "date-fns/intervalToDuration";
export * from "date-fns/intlFormat";
export * from "date-fns/intlFormatDistance";
export * from "date-fns/isAfter";
export * from "date-fns/isBefore";
export * from "date-fns/isDate";
export * from "date-fns/isEqual";
export * from "date-fns/isExists";
export * from "date-fns/isFirstDayOfMonth";
export * from "date-fns/isFriday";
export * from "date-fns/isFuture";
export * from "date-fns/isLastDayOfMonth";
export * from "date-fns/isLeapYear";
export * from "date-fns/isMatch";
export * from "date-fns/isMonday";
export * from "date-fns/isPast";
export * from "date-fns/isSameDay";
export * from "date-fns/isSameHour";
export * from "date-fns/isSameISOWeek";
export * from "date-fns/isSameISOWeekYear";
export * from "date-fns/isSameMinute";
export * from "date-fns/isSameMonth";
export * from "date-fns/isSameQuarter";
export * from "date-fns/isSameSecond";
export * from "date-fns/isSameWeek";
export * from "date-fns/isSameYear";
export * from "date-fns/isSaturday";
export * from "date-fns/isSunday";
export * from "date-fns/isThisHour";
export * from "date-fns/isThisISOWeek";
export * from "date-fns/isThisMinute";
export * from "date-fns/isThisMonth";
export * from "date-fns/isThisQuarter";
export * from "date-fns/isThisSecond";
export * from "date-fns/isThisWeek";
export * from "date-fns/isThisYear";
export * from "date-fns/isThursday";
export * from "date-fns/isToday";
export * from "date-fns/isTomorrow";
export * from "date-fns/isTuesday";
export * from "date-fns/isValid";
export * from "date-fns/isWednesday";
export * from "date-fns/isWeekend";
export * from "date-fns/isWithinInterval";
export * from "date-fns/isYesterday";
export * from "date-fns/lastDayOfDecade";
export * from "date-fns/lastDayOfISOWeek";
export * from "date-fns/lastDayOfISOWeekYear";
export * from "date-fns/lastDayOfMonth";
export * from "date-fns/lastDayOfQuarter";
export * from "date-fns/lastDayOfWeek";
export * from "date-fns/lastDayOfYear";
export * from "date-fns/lightFormat";
export * from "date-fns/max";
export * from "date-fns/milliseconds";
export * from "date-fns/millisecondsToHours";
export * from "date-fns/millisecondsToMinutes";
export * from "date-fns/millisecondsToSeconds";
export * from "date-fns/min";
export * from "date-fns/minutesToHours";
export * from "date-fns/minutesToMilliseconds";
export * from "date-fns/minutesToSeconds";
export * from "date-fns/monthsToQuarters";
export * from "date-fns/monthsToYears";
export * from "date-fns/nextDay";
export * from "date-fns/nextFriday";
export * from "date-fns/nextMonday";
export * from "date-fns/nextSaturday";
export * from "date-fns/nextSunday";
export * from "date-fns/nextThursday";
export * from "date-fns/nextTuesday";
export * from "date-fns/nextWednesday";
export * from "date-fns/parse";
export * from "date-fns/parseISO";
export * from "date-fns/parseJSON";
export * from "date-fns/previousDay";
export * from "date-fns/previousFriday";
export * from "date-fns/previousMonday";
export * from "date-fns/previousSaturday";
export * from "date-fns/previousSunday";
export * from "date-fns/previousThursday";
export * from "date-fns/previousTuesday";
export * from "date-fns/previousWednesday";
export * from "date-fns/quartersToMonths";
export * from "date-fns/quartersToYears";
export * from "date-fns/roundToNearestMinutes";
export * from "date-fns/secondsToHours";
export * from "date-fns/secondsToMilliseconds";
export * from "date-fns/secondsToMinutes";
export * from "date-fns/set";
export * from "date-fns/setDate";
export * from "date-fns/setDay";
export * from "date-fns/setDayOfYear";
export * from "date-fns/setDefaultOptions";
export * from "date-fns/setHours";
export * from "date-fns/setISODay";
export * from "date-fns/setISOWeek";
export * from "date-fns/setISOWeekYear";
export * from "date-fns/setMilliseconds";
export * from "date-fns/setMinutes";
export * from "date-fns/setMonth";
export * from "date-fns/setQuarter";
export * from "date-fns/setSeconds";
export * from "date-fns/setWeek";
export * from "date-fns/setWeekYear";
export * from "date-fns/setYear";
export * from "date-fns/startOfDay";
export * from "date-fns/startOfDecade";
export * from "date-fns/startOfHour";
export * from "date-fns/startOfISOWeek";
export * from "date-fns/startOfISOWeekYear";
export * from "date-fns/startOfMinute";
export * from "date-fns/startOfMonth";
export * from "date-fns/startOfQuarter";
export * from "date-fns/startOfSecond";
export * from "date-fns/startOfToday";
export * from "date-fns/startOfTomorrow";
export * from "date-fns/startOfWeek";
export * from "date-fns/startOfWeekYear";
export * from "date-fns/startOfYear";
export * from "date-fns/startOfYesterday";
export * from "date-fns/sub";
export * from "date-fns/subBusinessDays";
export * from "date-fns/subDays";
export * from "date-fns/subHours";
export * from "date-fns/subISOWeekYears";
export * from "date-fns/subMilliseconds";
export * from "date-fns/subMinutes";
export * from "date-fns/subMonths";
export * from "date-fns/subQuarters";
export * from "date-fns/subSeconds";
export * from "date-fns/subWeeks";
export * from "date-fns/subYears";
export * from "date-fns/toDate";
export * from "date-fns/transpose";
export * from "date-fns/weeksToDays";
export * from "date-fns/yearsToDays";
export * from "date-fns/yearsToMonths";
export * from "date-fns/yearsToQuarters";
export { }