您可能需要一些方法来操作 Day.js 对象。

Day.js 支持像这样的链式调用:

dayjs('2019-01-25').add(1, 'day').subtract(1, 'year').year(2009).toString()
面试题/开发技巧/前沿技术

# 增加

返回增加一定时间的复制的 Day.js 对象。

dayjs().add(7, 'day')

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

支持的单位列表:

单位 缩写 描述
day d
week w
month M 月份(0-11)
quarter Q 季度,依赖 QuarterOfYear 插件
year y
hour h 小时
minute m 分钟
second s
millisecond ms 毫秒

或者,也可以给 Day.js 对象增加一个 持续时间

# 减去

返回减去一定时间的复制的 Day.js 对象。

dayjs().subtract(7, 'year')

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

# 时间的开始

返回复制的 Day.js 对象,并设置到一个时间的开始。

dayjs().startOf('year')

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

支持的单位列表:

单位 缩写 描述
date D 当天 00:00
day d 当天 00:00
month M 本月1日上午 00:00
quarter Q 本季度第一个月1日上午 00:00,依赖 QuarterOfYear 插件
year y 今年一月1日上午 00:00
week w 本周的第一天上午 00:00
isoWeek 本周的第一天上午 00:00 (根据 ISO 8601) , ( 依赖 IsoWeek 插件 )
hour h 当前时间,0 分、0 秒、0 毫秒
minute m 当前时间,0 秒、0 毫秒
second s 当前时间,0 毫秒

# 时间的结束

返回复制的 Day.js 对象,并设置到一个时间的末尾。

dayjs().endOf('month')

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

# 当前时区

返回一个在当前时区模式下的 Day.js 对象。

注意

此功能依赖 UTC 插件

dayjs.extend(utc)

var a = dayjs.utc()
a.format() // 2019-03-06T00:00:00Z
a.local().format() //2019-03-06T08:00:00+08:00

了解更多关于 UTC 模式 的信息。

# UTC

返回一个在 UTC 模式下的 Day.js 对象。

注意

此功能依赖 UTC 插件

dayjs.extend(utc)

var a = dayjs()
a.format() //2019-03-06T08:00:00+08:00
a.utc().format() // 2019-03-06T00:00:00Z

传入 true 将只改变 UTC 模式而不改变本地时间。

dayjs('2016-05-03 22:15:01').utc(true).format() 
// 2016-05-03T22:15:01Z

# UTC偏移量

获取 UTC 偏移量 (分钟)。

dayjs().utcOffset()

也可以传入分钟来得到一个更改 UTC 偏移量的新实例。 请注意,一旦您设置了 UTC 偏移量,它将保持固定,不会自动改变 (即没有DST夏令时变更)。

注意

此功能依赖 UTC 插件

dayjs.extend(utc)

dayjs().utcOffset(120)

如果输入在-16到16之间,会将您的输入理解为小时数而非分钟。

// 以下两种写法是等效的
dayjs().utcOffset(8)  // 设置小时偏移量
dayjs().utcOffset(480)  // 设置分钟偏移量 (8 * 60)

第二个参数传入 true 可以只改变偏移量而保持本地时间不变。

dayjs.utc('2000-01-01T06:01:02Z').utcOffset(1, true).format() 
// 2000-01-01T06:01:02+01:00
Last Updated: 8/20/2022, 9:47:39 PM