在设计上 Day.js 的 gettersetter 使用了相同的 API,也就是说,不传参数调用方法即为 getter,调用并传入参数为 setter

这些 API 调用了对应原生 Date 对象的方法。

dayjs().second(30).valueOf() // => new Date().setSeconds(30)
dayjs().second() // => new Date().getSeconds()

如果您处于 UTC 模式,将会调用对应的 UTC 方法。

dayjs.utc().seconds(30).valueOf()// => new Date().setUTCSeconds(30)
dayjs.utc().seconds()// => new Date().getUTCSeconds()

# 毫秒

获取或设置毫秒。

传入0到999的数字。 如果超出这个范围,它会进位到秒。

dayjs().millisecond()
dayjs().millisecond(1)

#

获取或设置秒。

传入0到59的数字。 如果超出这个范围,它会进位到分钟。

dayjs().second()
dayjs().second(1)

# 分钟

获取或设置分钟。

传入0到59的数字。 如果超出这个范围,它会进位到小时。

dayjs().minute()
dayjs().minute(59)

# 小时

获取或设置小时。

传入0到23的数字。 如果超出这个范围,它会进位到天数。

dayjs().hour()
dayjs().hour(12)

# 日期

获取或设置月份里的日期。

接受1到31的数字。 如果超出这个范围,它会进位到月份。

dayjs().date()
dayjs().date(1)

注意

dayjs#date 是该月的日期。 dayjs#day 是星期几。

# 星期

获取或设置星期几。

传入 number 从0(星期天)到6(星期六)。 如果超出这个范围,它会进位到其他周。

dayjs().day()
dayjs().day(0)

注意

dayjs#date 是该月的日期。 dayjs#day 是星期几。

# 本地化星期

根据本地化配置获取或设置星期几。

注意

此功能依赖 Weekday 插件,才能正常运行

如果本地化配置了星期天为一周的第一天, dayjs().weekday(0) 将返回星期天。 如果星期一是一周的第一天, dayjs().weekday(0) 将返回星期一。

dayjs.extend(weekday)

// 当星期天是一周的第一天
dayjs().weekday(-7); // last Sunday
dayjs().weekday(7); // next Sunday

// 当星期一是一周的第一天
dayjs().weekday(-7) // last Monday
dayjs().weekday(7) // next Monday


// 当星期天是一周的第一天
dayjs().weekday(-5) // last Tuesday (5th day before Sunday)
dayjs().weekday(5) // next Friday (5th day after Sunday)

# ISO星期

获取或设置 ISO 星期几 (opens new window) ,其中 1 是星期一、7 是星期日。

注意

此功能依赖 IsoWeek 插件,才能正常运行

dayjs.extend(isoWeek)

dayjs().isoWeekday()
dayjs().isoWeekday(1); // Monday

# 年-日期

获取或设置年份里第几天。

传入1到366的数字。

如果超出这个范围,它会进位到下一年。

注意

此功能依赖 DayOfYear 插件

dayjs.extend(dayOfYear)

dayjs('2010-01-01').dayOfYear() // 1
dayjs('2010-01-01').dayOfYear(365) // 2010-12-31

# 年-周

获取或设置该年的第几周。

注意

此功能依赖 WeekOfYear 插件

dayjs.extend(weekOfYear)

dayjs('2018-06-27').week() // 26
dayjs('2018-06-27').week(5) // 设置周

注意

week() 函数是特定于区域设置的,因此应该在之前导入区域设置。

import "dayjs/locale/zh-cn";
dayjs.locale("zh-cn");

dayjs("2022-8-8").week(1).format("YYYY-MM-DD"); // 2022-01-03
dayjs("2022-8-9").week(1).format("YYYY-MM-DD"); // 2022-01-04

# 年-周(ISO)

获取或设置年份的 ISO 星期 (opens new window)

注意

此功能依赖 IsoWeek 插件

dayjs.extend(isoWeek)

dayjs().isoWeek()
dayjs().isoWeek(2)

#

获取或设置月份。

传入0到11的 number。 如果超出这个范围,它会进位到年份。

dayjs().month()
dayjs().month(0)

注意

月份是从 0 开始计算的,即 1 月是 0。

# 季度

获取或设置季度。

注意

此功能依赖 QuarterOfYear 插件

dayjs.extend(quarterOfYear)

dayjs('2010-04-01').quarter() // 2
dayjs('2010-04-01').quarter(2)

#

获取或设置年份。

dayjs().year()
dayjs().year(2000)

# 周年

获取基于当前语言配置的按周计算的年份。

注意

此功能依赖 WeekYear 插件

dayjs.extend(weekYear)
dayjs.extend(weekOfYear)

dayjs().weekYear()

# 周年(ISO)

获取 ISO 周年 (opens new window)

注意

此功能依赖 IsoWeek 插件

dayjs.extend(isoWeek)

dayjs().isoWeekYear()

# 年周数(ISO)

获取当前年份的周数,根据 ISO weeks (opens new window) 的定义。

注意

此功能依赖 IsoWeeksInYear 插件

dayjs.extend(isoWeeksInYear)
dayjs.extend(isLeapYear)

dayjs('2004-01-01').isoWeeksInYear() // 53
dayjs('2005-01-01').isoWeeksInYear() // 52

# Get

从 Day.js 对象中获取相应信息的 getter。

可以理解为:

dayjs().get(unit) === dayjs()[unit]()

各个传入的单位对大小写不敏感,支持缩写和复数。 请注意,缩写是区分大小写的。

dayjs().get('year')
dayjs().get('month') // start 0
dayjs().get('date')
dayjs().get('hour')
dayjs().get('minute')
dayjs().get('second')
dayjs().get('millisecond')

支持的单位列表:

单位 缩写 描述
date D 日期
day d 星期(星期日0,星期六6)
month M 月份(0-11)
year y
hour h 小时
minute m 分钟
second s
millisecond ms 毫秒

# Set

通用的 setter,两个参数分别是要更新的单位和数值,调用后会返回一个修改后的新实例。

可以理解为:

dayjs().set(unit, value) === dayjs()[unit](value)
dayjs().set('date', 1)
dayjs().set('month', 3) // 四月
dayjs().set('second', 30)

也支持这样的链式调用:

dayjs().set('hour', 5).set('minute', 55).set('second', 15)

各个传入的单位对大小写不敏感,支持缩写和复数。

支持的单位列表

# 最大值

返回传入的 Day.js 实例中的最大的 (即最靠近未来的)。 它接受传入多个 Day.js实例或一个数组。

注意

此功能依赖 MinMax 插件

dayjs.extend(minMax)

dayjs.max(dayjs(), dayjs('2018-01-01'), dayjs('2019-01-01'))
dayjs.max([dayjs(), dayjs('2018-01-01'), dayjs('2019-01-01')])

# 最小值

返回传入的 Day.js 实例中的最小的 (即最靠近过去的)。 它接受传入多个 Day.js实例或一个数组。

注意

此功能依赖 MinMax 插件

dayjs.extend(minMax)

dayjs.min(dayjs(), dayjs('2018-01-01'), dayjs('2019-01-01'))
dayjs.min([dayjs(), dayjs('2018-01-01'), dayjs('2019-01-01')])
Last Updated: 10/10/2022, 6:48:58 PM