@shencom/utils-date
Version:
269 lines (264 loc) • 7.88 kB
TypeScript
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 };