在设计上 Day.js 的 getter
和 setter
使用了相同的 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)
注意
此功能依赖 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')])