UNPKG

@shencom/utils-date

Version:
269 lines (264 loc) 7.88 kB
import dayjs from 'dayjs'; type IFormatDate = (date?: dayjs.Dayjs | number | Date | string, format?: string) => string; /** * 日期格式化 * * @param {(number | Date | string)} [date] 时间,默认: `new Date()` * @param {string} [format] 格式化规则,默认: `YYYY-MM-DD` * @example * ```ts * FormatDate(); // 2022-02-18 * FormatDate(new Date()); // 2022-02-18 * FormatDate(Date.now()); // 2022-02-18 * ``` * @returns {string} */ declare const FormatDate: IFormatDate; /** * 时间格式化 * * @param {(number | Date | string)} [date] 时间,默认: `new Date()` * @param {string} [format] 格式化规则,默认: `HH:mm:ss` * @example * ```ts * FormatTime(); // 14:50:52 * FormatTime(new Date()); // 14:50:52 * FormatTime(Date.now()); // 14:50:52 * ``` * @returns {string} */ declare const FormatTime: IFormatDate; /** * 日期时间格式化 * * @param {(number | Date | string)} [date] 时间,默认: `new Date()` * @param {string} [format] 格式化规则,默认: `YYYY-MM-DD HH:mm:ss` * @example * ```ts * FormatDateTime(); // 2022-02-18 14:50:52 * FormatDateTime(new Date()); // 2022-02-18 14:50:52 * FormatDateTime(Date.now()); // 2022-02-18 14:50:52 * ``` * @returns {string} */ declare const FormatDateTime: IFormatDate; /** * 获取两个时间段的时间差 * * @param {number} startDate 开始时间 * @param {number} [endDate] 结束时间,默认: `new Date()` * @param {dayjs.UnitType} [unit] 返回单位类型,默认: `minute` * @example * ```ts * FormatIntervalDate(1574254800000,1574251200000);// 60 * FormatIntervalDate('2022-02-18 16:00:00', '2022-02-18 17:00:00');// 60 * FormatIntervalDate('2022-02-18 17:00:00', '2022-02-18 16:00:00');// 60 * FormatIntervalDate('2022-02-18 16:00:00', '2022-02-18 16:10:00', 's');// 600 * ``` * @returns {number} */ declare const FormatIntervalDate: (start: number | string, end?: number | string | Date, unit?: dayjs.UnitType) => number; /** * 格式化秒 => 时分秒 * * @param {number} time 秒 * @param {string} [format] 格式,默认: `h:m:s` * @example * ```ts * FormatSecond(1);// '0时00分01秒' * FormatSecond(60);// '0时01分00秒' * FormatSecond(60, 'm:s');// '01分00秒' * FormatSecond(3600);// '1时00分00秒' * ``` * @return {string} */ declare const FormatSecond: (time: number, format?: string) => string; declare const RangeToday: string[]; declare const RangeYesterday: string[]; declare const RangeBeforeYesterday: string[]; declare const RangeWeek: string[]; declare const RangeBeforeWeek: string[]; declare const RangeNextWeek: string[]; declare const RangeWeekToNow: string[]; declare const RangeLastWeek: string[]; declare const RangeLastFourWeek: string[]; declare const RangeMonth: string[]; declare const RangeBeforeMonth: string[]; declare const RangeNextMonth: string[]; declare const RangeMonthToNow: string[]; declare const RangeLastMonth: string[]; declare const RangeLastThreeMonth: string[]; declare const RangeLastSixMonth: string[]; declare const RangeYear: string[]; declare const RangeBeforeYear: string[]; declare const RangeNextYear: string[]; declare const RangeYearToNow: string[]; declare const RangeLastYear: string[]; /** * 返回今天日期 * @example * ```ts * Today(); // '2022-12-08' * ``` * @returns {String} */ declare const Today: () => string; /** * 返回昨天日期 * @example * ```ts * Yesterday(); // '2022-12-07' * ``` * @returns {String} */ declare const Yesterday: () => string; /** * 返回明天日期 * @example * ```ts * Tomorrow(); // '2022-12-09' * ``` * @returns {String} */ declare const Tomorrow: () => string; /** * 返回上周(7天前日期) * @example * ```ts * PrevWeek(); // '2022-12-01' * ``` * @returns {String} */ declare const PrevWeek: () => string; /** * 返回下周(7天后日期) * @example * ```ts * NextWeek(); // '2022-12-15' * ``` * @returns {String} */ declare const NextWeek: () => string; /** * 返回上个月日期 * @example * ```ts * PrevMonth(); // '2022-11-08' * ``` * @returns {String} */ declare const PrevMonth: () => string; /** * 返回下个月日期 * @example * ```ts * NextMonth(); // '2023-01-08' * ``` * @returns {String} */ declare const NextMonth: () => string; /** * 返回一年前日期 * @example * ```ts * PrevYear(); // '2020-12-08' * ``` * @returns {String} */ declare const PrevYear: () => string; /** * 返回一年后日期 * @example * ```ts * NextYear(); // '2023-12-08' * ``` * @returns {String} */ declare const NextYear: () => string; /** * 当时间是否为上午 * @example * ```ts * IsAM(); // false * ``` * @returns {Boolean} */ declare const IsAM: () => boolean; /** * 当时间是否为下午 * @example * ```ts * IsPM(); // true * ``` * @returns {Boolean} */ declare const IsPM: () => boolean; /** * 是否为闰年 * @description 闰年366天,平年365天 * @param {Number} year 年份 * @example * ```ts * IsLeapYear(2000); // true * IsLeapYear(2004); // true * IsLeapYear(2100); // false * IsLeapYear(2020); // true * ``` * @returns {Boolean} */ declare const IsLeapYear: (year: number) => boolean; /** * 获得当前日期是周几 * @param {Date} date 日期参数,默认当前日期 * @param {String} format 周格式化结果:“d”:日, “dd”:周日, “ddd”:星期日;默认“ddd” * @example * ```ts * const date = new Date('2022-12-08'); * GetWeek(date, 'dd'); // '四' * GetWeek(date, 'ddd'); // '周四' * GetWeek(date, 'dddd'); // '星期四' * ``` * @returns {String} */ declare function GetWeek(date?: Date, format?: string): string; /** * 获得过去时间的字符串显示 * @description 例如:刚刚,1分钟前,1小时前等 * @param {Date|String} date 日期或日期字符串 * @param {String} lang 字符串语言,zh和en,默认zh * * @example * ```ts * PastTime(new Date(Date.now() - 1000 * 2)); // '刚刚' * PastTime(Dayjs().subtract(12, 'hour').valueOf()); // '12小时前' * PastTime(Dayjs().subtract(1, 'day').valueOf()); // '1天前' * PastTime(Dayjs().subtract(1, 'month').valueOf()); // '1个月前' * PastTime(Dayjs().subtract(1, 'year').valueOf()); // '1年前' * ``` * @returns {String} */ declare const PastTime: (val: number | string | Date) => string; /** * 获得剩余时间的字符串显示 * @description 例如:1天10小时20分钟30秒 * @param {Date|String} date 日期或日期字符串 * @example * ```ts * GetOverTime(Dayjs().valueOf()); // '0天00时00分00秒'; * GetOverTime(Dayjs().add(60, 'second').valueOf()); // '0天00时01分00秒'; * GetOverTime(Dayjs().add(1, 'second').valueOf()); // '0天00时00分01秒'; * GetOverTime(Dayjs().add(1, 'hour').valueOf()); // '0天01时00分00秒'; * GetOverTime(Dayjs().add(25, 'hour').valueOf()); // '1天01时00分00秒'; * GetOverTime(Dayjs().add(1, 'day').valueOf()); // '1天00时00分00秒'; * GetOverTime(Dayjs().add(1, 'week').valueOf()); // '7天00时00分00秒'; * GetOverTime(Dayjs().subtract(1, 'day').valueOf()); // '--' * ``` * @returns {String} */ declare const GetOverTime: (val: number | string | Date) => string; /** * 日期转化 * * 参考 https://github.com/iamkun/dayjs */ declare const Dayjs: typeof dayjs; export { Dayjs, FormatDate, FormatDateTime, FormatIntervalDate, FormatSecond, FormatTime, GetOverTime, GetWeek, IFormatDate, IsAM, IsLeapYear, IsPM, NextMonth, NextWeek, NextYear, PastTime, PrevMonth, PrevWeek, PrevYear, RangeBeforeMonth, RangeBeforeWeek, RangeBeforeYear, RangeBeforeYesterday, RangeLastFourWeek, RangeLastMonth, RangeLastSixMonth, RangeLastThreeMonth, RangeLastWeek, RangeLastYear, RangeMonth, RangeMonthToNow, RangeNextMonth, RangeNextWeek, RangeNextYear, RangeToday, RangeWeek, RangeWeekToNow, RangeYear, RangeYearToNow, RangeYesterday, Today, Tomorrow, Yesterday };