日期库 DateLib
DateLib 是日期库的静态工具类,提供面向业务场景的字符串日期解析、格式化与快捷取时间的便捷方法。使用时需先实例化:
typescript
import { DateLib } from '@/uni_modules/sinle-ui'
const lib = new DateLib()DateLib. now()
获取当前时间字符串
返回当前时间的 YYYY-MM-DD HH:mm:ss 格式字符串。
属性
无
返回值
| 类型 | 必备 | 描述 |
|---|---|---|
| String | 是 | YYYY-MM-DD HH:mm:ss 格式的当前时间 |
示例
typescript
lib.now() // "2024-05-20 15:03:07"DateLib. today()
获取今天日期字符串
返回今天(可指定偏移天数)的 YYYY-MM-DD 格式日期字符串。
属性
| 名称 | 类型 | 必备 | 默认值 | 描述 |
|---|---|---|---|---|
| n | Number | 否 | 0 | 相对今天的偏移天数,负数表示过去,正数表示未来 |
返回值
| 类型 | 必备 | 描述 |
|---|---|---|
| String | 是 | YYYY-MM-DD 格式的日期字符串 |
示例
typescript
lib.today() // 今天 "2024-05-20"
lib.today(-1) // 昨天 "2024-05-19"
lib.today(7) // 一周后 "2024-05-27"DateLib. toDate()
字符串解析为 Date
将日期字符串解析为原生 Date 对象。支持时间戳、包含中文单位的日期(年月日时分秒)、以及多种长度的无分隔符数字串,并自动忽略字符串中的 周/星期/礼拜 表述。解析失败时返回当前时间 new Date()。
属性
| 名称 | 类型 | 必备 | 默认值 | 描述 |
|---|---|---|---|---|
| date | String | 是 | - | 待解析的日期字符串 |
返回值
| 类型 | 必备 | 描述 |
|---|---|---|
| Date | 是 | 解析得到的 Date 对象 |
示例
typescript
lib.toDate('2024-05-20') // Date(2024-05-20)
lib.toDate('2024年5月20日') // Date(2024-05-20)
lib.toDate('2024-5-20') // Date(2024-05-20)
lib.toDate('1716163200') // 10 位数字按秒处理
lib.toDate('2024-5-20 10:30:00') // Date(2024-05-20 10:30:00)解析规则说明:
- 纯数字且长度 ≥ 10:按时间戳处理,10 位按秒、其余按毫秒。
- 含中文单位(年月日时分秒):替换为
-/:后按长度补齐时分秒(4 位补年初、7 位补月首、8 位拼今天、10 位补 0 点、13 位补分、16 位补秒)。 - 含
T字符串:直接交给new Date(date)。 - 空字符串:返回当前时间。
DateLib. fmtDate()
按格式模板格式化日期字符串
将日期字符串解析后按小写 token 模板格式化输出。支持 周/星期/礼拜 关键字的星期文案追加。未传模板时默认 'yyyy-MM-dd'。
注意:
fmtDate使用小写 tokeny/M/d/H/m/s,与Dayuts.format的大写 token 体系不同,两者不可混用。
属性
| 名称 | 类型 | 必备 | 默认值 | 描述 |
|---|---|---|---|---|
| date | String | 是 | - | 待格式化的日期字符串 |
| format | String | 是 | - | 格式模板,默认 'yyyy-MM-dd' |
返回值
| 类型 | 必备 | 描述 |
|---|---|---|
| String | 是 | 格式化后的日期字符串 |
| Token | 说明 |
|---|---|
y | 4 位年份,如 2024 |
M | 2 位月份(补 0),如 05 |
d | 2 位日期(补 0),如 20 |
H | 2 位小时(补 0),如 15 |
m | 2 位分钟(补 0),如 03 |
s | 2 位秒(补 0),如 07 |
周 星期 礼拜 | 模板含这些关键字时,末尾追加对应星期文案 |
示例
typescript
lib.fmtDate('2024-05-20', 'yyyy年MM月dd日') // "2024年05月20日"
lib.fmtDate('2024-05-20', 'yyyy-MM-dd HH:mm:ss')
lib.fmtDate('2024-05-20', 'yyyy-MM-dd 星期') // 追加星期 "2024-05-20 星期一"DateLib. weeks()
获取本周日期
返回本周(周一至周日)共 7 天的 YYYY-MM-DD 日期字符串数组。
属性
无
返回值
| 类型 | 必备 | 描述 |
|---|---|---|
| String[] | 是 | 长度 7 的日期字符串数组,周一至周日 |
示例
typescript
lib.weeks() // ["2024-05-13", "2024-05-14", ..., "2024-05-19"]DateLib. weekName()
获取星期名称
根据星期数字(getDay() 0=周日)返回星期名称文本。名称形式由 format 参数中是否包含 星期/礼拜 决定。
属性
| 名称 | 类型 | 必备 | 默认值 | 描述 |
|---|---|---|---|---|
| day | Number | 是 | - | 星期数字,0=周日,6=周六 |
| format | String | 是 | - | 决定文案形式:含 星期 输出 星期X,含 礼拜 输出 礼拜X,否则输出 周X |
返回值
| 类型 | 必备 | 描述 |
|---|---|---|
| String | 是 | 星期名称文本 |
示例
typescript
lib.weekName(1, '星期') // "星期一"
lib.weekName(1, '礼拜') // "礼拜一"
lib.weekName(1, '') // "周一"DateLib. dayuts() / newDate()
创建 Dayuts 实例
创建 Dayuts 实例,行为同全局工厂函数 dayuts(),支持字符串、时间戳、数组、Date、Dayuts 等多种入参;若传入 Dayuts 实例则返回其克隆。newDate 为同名等价方法。
属性
| 名称 | 类型 | 必备 | 默认值 | 描述 |
|---|---|---|---|---|
| date | any | null | 否 | null | 日期值,为 null 时取当前时间 |
| format | string | null | 否 | null | 解析格式(仅 Web 端生效) |
| locale | string | null | 否 | null | 语言名 |
返回值
| 类型 | 必备 | 描述 |
|---|---|---|
| Dayuts | 是 | Dayuts 实例 |
示例
typescript
lib.dayuts('2024-05-20', undefined, 'zh-cn').format('YYYY-MM-DD') // "2024-05-20"
lib.newDate('2024-05-20') // Dayuts(2024-05-20)