UNPKG

@shencom/utils-date

Version:
267 lines (216 loc) 6.08 kB
# @shencom/utils-date > 日期时间处理工具 ## Install ```sh pnpm add @shencom/utils # or pnpm add @shencom/utils-date ``` ## Basic Usage ```ts import { FormatDate, FormatTime } from '@shencom/utils'; // import { FormatDate, FormatTime } from '@shencom/utils-date'; ``` ## Methods **FormatDate** - 说明: 日期格式化 - 类型: `(date?: number | Date | string, format?: string) => string` - 参数: - `date`: 时间,默认: `new Date()` - `format`: 格式化规则,默认: `YYYY-MM-DD` - 示例: ```ts FormatDate(); // 2022-02-18 FormatDate(new Date()); // 2022-02-18 FormatDate(Date.now()); // 2022-02-18 ``` **FormatTime** - 说明: 时间格式化 - 类型: `(date?: number | Date | string, format?: string) => string` - 参数: - `date`: 时间,默认: `new Date()` - `format`: 格式化规则,默认: `HH:mm:ss` - 示例: ```ts FormatTime(); // 14:50:52 FormatTime(new Date()); // 14:50:52 FormatTime(Date.now()); // 14:50:52 ``` **FormatDateTime** - 说明: 日期时间格式化 - 类型: `(date?: number | Date | string, format?: string) => string` - 参数: - `date`: 时间,默认: `new Date()` - `format`: 格式化规则,默认: `YYYY-MM-DD HH:mm:ss` - 示例: ```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 ``` **FormatIntervalDate** - 说明: 获取两个时间段的时间差 - 类型: `(start: number | string, end?: number | string | Date, unit?: dayjs.UnitType) => number` - 参数: - `start`: 开始时间 - `end`: 结束时间,默认: `new Date()` - `unit`: 返回单位类型,默认: `minute` - 示例: ```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 ``` **FormatSecond** - 说明: 格式化秒 => 时分秒 - 类型: `(second: number, format?: string) => string` - 参数: - `second`: 时间,默认: `new Date()` - `format`: 格式,默认: `h:m:s` - 示例: ```ts FormatSecond(1); // '0时00分01秒' FormatSecond(60); // '0时01分00秒' FormatSecond(60, 'm:s'); // '01分00秒' FormatSecond(3600); // '1时00分00秒' ``` **Today** - 说明: 返回今天日期 - 类型: `() => string` - 示例: ```ts Today(); // '2022-12-08' ``` **Yesterday** - 说明: 返回昨天日期 - 类型: `() => string` - 示例: ```ts Yesterday(); // '2022-12-07' ``` **Tomorrow** - 说明: 返回明天日期 - 类型: `() => string` - 示例: ```ts Tomorrow(); // '2022-12-09' ``` **PrevWeek** - 说明: 返回上周(7 天前日期) - 类型: `() => string` - 示例: ```ts PrevWeek(); // '2022-12-01' ``` **NextWeek** - 说明: 返回下周(7 天后日期) - 类型: `() => string` - 示例: ```ts NextWeek(); // '2022-12-15' ``` **PrevMonth** - 说明: 返回上个月日期 - 类型: `() => string` - 示例: ```ts PrevMonth(); // '2022-11-08' ``` **NextMonth** - 说明: 返回下个月日期 - 类型: `() => string` - 示例: ```ts NextMonth(); // '2023-01-08' ``` **PrevYear** - 说明: 返回一年前日期 - 类型: `() => string` - 示例: ```ts PrevYear(); // '2023-12-08' ``` **NextYear** - 说明: 返回一年后日期 - 类型: `() => string` - 示例: ```ts NextYear(); // '2023-12-08' ``` **IsAM** - 说明: 当时间是否为上午 - 类型: `() => boolean` - 示例: ```ts IsAM(); // false ``` **IsPM** - 说明: 当时间是否为下午 - 类型: `() => boolean` - 示例: ```ts IsPM(); // true ``` **IsLeapYear** - 说明: 是否为闰年 - 描述: 闰年 366 天,平年 365 天 - 类型: `(year: number) => boolean` - 参数: - `year`: 年份 - 示例: ```ts IsLeapYear(2000); // true IsLeapYear(2004); // true IsLeapYear(2100); // false IsLeapYear(2020); // true ``` **GetWeek** - 说明: 获得当前日期是周几 - 描述: 闰年 366 天,平年 365 天 - 类型: `(date?: Date, format?: string): string` - 参数: - `date`: 日期参数,默认当前日期 - `format`: 周格式化结果:“d”:日, “dd”:周日, “ddd”:星期日;默认“ddd” - 示例: ```ts const date = new Date('2022-12-08'); GetWeek(date, 'dd'); // '四' GetWeek(date, 'ddd'); // '周四' GetWeek(date, 'dddd'); // '星期四' ``` **PastTime** - 说明: 获得过去时间的字符串显示 - 描述: 例如:刚刚,1 分钟前,1 小时前等 - 类型: `(date?: Date, format?: string): string` - 参数: - `date`: 日期或日期字符串 - `lang`: 字符串语言,zh 和 en,默认 zh \* - 示例: ```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年前' ``` **GetOverTime** - 说明: 获得剩余时间的字符串显示 - 描述: 例如:1 天 10 小时 20 分钟 30 秒 - 类型: `(date?: Date, format?: string): string` - 参数: - `date`: 日期或日期字符串 - 示例: ```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()); // '0天00时00分00秒' ``` **Dayjs** - 说明: 同 `dayjs` - 提示: 参考: <https://github.com/iamkun/dayjs>