Skip to content

日期库 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 格式日期字符串。

属性 ​

名称类型必备默认值描述
nNumber否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()。

属性 ​

名称类型必备默认值描述
dateString是-待解析的日期字符串

返回值 ​

类型必备描述
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 使用小写 token y/M/d/H/m/s,与 Dayuts.format 的大写 token 体系不同,两者不可混用。

属性 ​

名称类型必备默认值描述
dateString是-待格式化的日期字符串
formatString是-格式模板,默认 'yyyy-MM-dd'

返回值 ​

类型必备描述
String是格式化后的日期字符串
Token说明
y4 位年份,如 2024
M2 位月份(补 0),如 05
d2 位日期(补 0),如 20
H2 位小时(补 0),如 15
m2 位分钟(补 0),如 03
s2 位秒(补 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 参数中是否包含 星期/礼拜 决定。

属性 ​

名称类型必备默认值描述
dayNumber是-星期数字,0=周日,6=周六
formatString是-决定文案形式:含 星期 输出 星期X,含 礼拜 输出 礼拜X,否则输出 周X

返回值 ​

类型必备描述
String是星期名称文本

示例 ​

typescript
lib.weekName(1, '星期')   // "星期一"
lib.weekName(1, '礼拜')   // "礼拜一"
lib.weekName(1, '')       // "周一"

DateLib. dayuts() / newDate() ​

创建 Dayuts 实例 ​

创建 Dayuts 实例,行为同全局工厂函数 dayuts(),支持字符串、时间戳、数组、Date、Dayuts 等多种入参;若传入 Dayuts 实例则返回其克隆。newDate 为同名等价方法。

属性 ​

名称类型必备默认值描述
dateany | null否null日期值,为 null 时取当前时间
formatstring | null否null解析格式(仅 Web 端生效)
localestring | 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)

使用 MIT 协议