Skip to content

LimeDayuts 日期库 ​

一个轻量的处理时间和日期的 UTS 库,几乎和 dayjs 保持一样的 API。lime-dayuts 提供了丰富的日期操作功能,包括日期解析、格式化、比较、操作和查询等,可用于各种需要处理日期和时间的应用场景。

文档链接 ​

📚 组件详细文档请访问以下站点:

安装方法 ​

  1. 在uni-app插件市场入口 中搜索并导入lime-dayuts
  2. 导入后可能需要重新编译项目

代码演示 ​

基础用法 ​

最简单的日期库用法,直接导入并使用。

ts
import {dayuts} from '@/uni_modules/lime-dayuts';
dayuts().format() // 2024-03-25T02:10:16+08:00

解析日期 ​

dayuts 接受多种类型的输入,包括字符串、数字、Date 对象等。

ts
// 当前时间
dayuts()

// 字符串
dayuts('2024-03-04T16:00:00.000Z')
dayuts('2024-03-13 19:18:17.040+02:00')
dayuts('2024-03-13 19:18')
dayuts('1748750498228')

// 字符串+格式
dayuts('1970-00-00', 'YYYY-MM-DD')

// Unix 时间戳 (毫秒)
dayuts(1318781876406)

// Date 对象
dayuts(new Date(2018, 8, 18))

// 数组
dayuts([2010, 1, 14, 15, 25, 50, 125])

取值/赋值 ​

在设计上 Dayuts 的 getter 和 setter 使用了相同的 API,不传参数调用方法即为 getter,调用并传入参数为 setter。

ts
// 获取或设置毫秒
dayuts().millisecond() // 获取当前毫秒
dayuts().millisecond(1) // 返回新的 dayuts 对象

// 获取或设置秒
dayuts().second() // 获取当前秒
dayuts().second(1) // 返回新的 dayuts 对象

// 获取或设置分钟
dayuts().minute() // 获取当前分钟
dayuts().minute(1) // 返回新的 dayuts 对象

// 获取或设置小时
dayuts().hour() // 获取当前小时
dayuts().hour(12) // 返回新的 dayuts 对象

// 获取或设置日期
dayuts().date() // 获取当前日期
dayuts().date(12) // 返回新的 dayuts 对象

// 获取或设置月份
dayuts().month() // 获取当前月份
dayuts().month(0) // 返回新的 dayuts 对象

// 获取或设置年份
dayuts().year() // 获取当前年份
dayuts().year(2000) // 返回新的 dayuts 对象

日期操作 ​

ts
// 增加时间
dayuts().add(7, 'day')

// 减去时间
dayuts().subtract(7, 'year')

// 设置到一个时间的开始
dayuts().startOf('year')

// 设置到一个时间的末尾
dayuts().endOf('month')

日期格式化 ​

ts
// 默认格式化
dayuts().format() // 默认返回的是 ISO8601 格式字符串 '2024-03-28T01:33:29+08:00'

// 自定义格式化
dayuts('2019-01-25').format('DD/MM/YYYY') // '25/01/2019'

日期比较 ​

ts
// 是否在前
dayuts().isBefore(dayuts('2011-01-01')) // false

// 是否在后
dayuts().isAfter(dayuts('2011-01-01')) // true

// 是否相同
dayuts().isSame('2011-01-01', 'year') // false

// 是否相同或在前
dayuts().isSameOrBefore('2011-01-01', 'month') // false

// 是否相同或在后
dayuts().isSameOrAfter('2011-01-01', 'month') // true

// 是否在区间内
dayuts('2010-10-20').isBetween('2010-10-19', dayuts('2010-10-25')) // true

API文档 ​

解析 ​

方法说明参数返回值
dayuts()创建当前时间的 Dayuts 对象-Dayuts 对象
dayuts(string)从字符串创建 Dayuts 对象日期字符串Dayuts 对象
dayuts(string, format)从指定格式的字符串创建 Dayuts 对象日期字符串, 格式字符串Dayuts 对象
dayuts(number)从时间戳创建 Dayuts 对象时间戳(毫秒)Dayuts 对象
dayuts(Date)从 Date 对象创建 Dayuts 对象Date 对象Dayuts 对象
dayuts(array)从数组创建 Dayuts 对象[年,月,日,时,分,秒,毫秒]Dayuts 对象

取值/赋值 ​

方法说明参数返回值
millisecond()获取毫秒-0-999
millisecond(value)设置毫秒0-999Dayuts 对象
second()获取秒-0-59
second(value)设置秒0-59Dayuts 对象
minute()获取分钟-0-59
minute(value)设置分钟0-59Dayuts 对象
hour()获取小时-0-23
hour(value)设置小时0-23Dayuts 对象
date()获取日期-1-31
date(value)设置日期1-31Dayuts 对象
day()获取星期-0-6
day(value)设置星期0-6Dayuts 对象
month()获取月份-0-11
month(value)设置月份0-11Dayuts 对象
year()获取年份-年份数字
year(value)设置年份年份数字Dayuts 对象
get(unit)获取指定单位的值时间单位数值
set(unit, value)设置指定单位的值时间单位, 值Dayuts 对象

操作 ​

方法说明参数返回值
add(value, unit)增加时间数值, 单位Dayuts 对象
subtract(value, unit)减少时间数值, 单位Dayuts 对象
startOf(unit)设置为时间单位的开始单位Dayuts 对象
endOf(unit)设置为时间单位的结束单位Dayuts 对象

显示 ​

方法说明参数返回值
format(template)格式化日期格式模板字符串
fromNow(withoutSuffix)相对当前时间(前)是否不带后缀字符串
from(compared, withoutSuffix)相对指定时间(前)比较时间, 是否不带后缀字符串
toNow(withoutSuffix)相对当前时间(后)是否不带后缀字符串
to(compared, withoutSuffix)相对指定时间(后)比较时间, 是否不带后缀字符串
diff(compared, unit, float)计算时间差比较时间, 单位, 是否返回浮点数数值
valueOf()获取时间戳(毫秒)-数值
unix()获取时间戳(秒)-数值
daysInMonth()获取月份的天数-数值
toDate()转换为 Date 对象-Date 对象
toArray()转换为数组-数组
toJSON()转换为 JSON 字符串-字符串
toObject()转换为对象-对象
toString()转换为字符串-字符串

查询 ​

方法说明参数返回值
isBefore(compared, unit)是否在指定时间之前比较时间, 单位布尔值
isAfter(compared, unit)是否在指定时间之后比较时间, 单位布尔值
isSame(compared, unit)是否与指定时间相同比较时间, 单位布尔值
isSameOrBefore(compared, unit)是否与指定时间相同或之前比较时间, 单位布尔值
isSameOrAfter(compared, unit)是否与指定时间相同或之后比较时间, 单位布尔值
isBetween(from, to, unit, inclusivity)是否在指定时间区间内开始时间, 结束时间, 单位, 包含性布尔值
isLeapYear()是否为闰年-布尔值
isToday()是否为今天-布尔值

国际化 ​

方法说明参数返回值
locale(localeName)设置或获取语言语言名称Dayuts 对象或语言名称
dayutsIntl.locale全局设置语言语言名称-

格式化占位符 ​

占位符输出描述
YY01两位数的年份
YYYY2001四位数的年份
M1-12月份,从1开始计数
MM01-12月份,两位数
MMMJan-Dec缩写的月份名称
MMMMJanuary-December完整的月份名称
D1-31一个月的某一天
DD01-31一个月的某一天,两位数
H0-23小时数
HH00-23小时数,两位数
h1-1212小时制的小时数
hh01-1212小时制的小时数,两位数
m0-59分钟数
mm00-59分钟数,两位数
s0-59秒数
ss00-59秒数,两位数
S0-9百毫秒数,一位数
SS00-99十毫秒数,两位数
SSS000-999毫秒数,三位数
Z-05:00相对于UTC的偏移量
ZZ-0500相对UTC的紧凑偏移量,两位数
AAM PM上午或下午,大写字母
aam pm上午或下午,小写字母
ddd周一周,需要设置locale = 'zh-cn',默认为英文
dddd星期一星期,需要设置locale = 'zh-cn',默认为英文

时间单位 ​

单位缩写描述
dayd日
weekw周
monthM月
yeary年
hourh小时
minutem分钟
seconds秒
millisecondms毫秒

支持与赞赏 ​

如果你觉得本插件解决了你的问题,可以考虑支持作者:

支付宝赞助微信赞助

源代码 ​

组件源码