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

属性

返回值

类型必备描述
StringYYYY-MM-DD HH:mm:ss 格式的当前时间

示例

typescript
lib.now()  // "2024-05-20 15:03:07"

DateLib. today()

获取今天日期字符串

返回今天(可指定偏移天数)的 YYYY-MM-DD 格式日期字符串。

属性

名称类型必备默认值描述
nNumber0相对今天的偏移天数,负数表示过去,正数表示未来

返回值

类型必备描述
StringYYYY-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(),支持字符串、时间戳、数组、DateDayuts 等多种入参;若传入 Dayuts 实例则返回其克隆。newDate 为同名等价方法。

属性

名称类型必备默认值描述
dateany | nullnull日期值,为 null 时取当前时间
formatstring | nullnull解析格式(仅 Web 端生效)
localestring | nullnull语言名

返回值

类型必备描述
DayutsDayuts 实例

示例

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 协议