高级用法
日期计算
dayjs().add(1, 'day')
// 例子
const time = '2020-12-31T15:00:00.000Z'
const formatTime = dayjs(time).add(1, 'day').format('YYYY-MM-DD HH:mm:ss')
// 输出 2021-01-01 15:00:00
上述代码中,add
方法的第一个参数是数字,第二个参数是字符串,字符串的值可以是year
、month
、day
、hour
、minute
、second
、millisecond
,分别表示年、月、日、时、分、秒、毫秒。 由此可知,上述代码的含义是在2020-12-31T15:00:00.000Z
的基础上,加一天,即2021-01-01T15:00:00.000Z
。
日期比较
dayjs().isBefore(dayjs('2020-12-31T15:00:00.000Z'))
// 例子
const time = '2020-12-20T15:00:00.000Z'
const isBefore = dayjs(time).isBefore(dayjs('2020-12-31T15:00:00.000Z'))
// 输出 true
上述代码中,isBefore
方法的参数是一个dayjs
对象,返回值是布尔值,表示当前时间是否在参数时间之前。
日期差
dayjs().diff(dayjs('2020-12-31T15:00:00.000Z'), 'day')
// 例子
const time = '2020-12-20T15:00:00.000Z'
const diff = dayjs(time).diff(dayjs('2020-12-31T15:00:00.000Z'), 'day')
// 输出 -11
上述代码中,diff
方法的第一个参数是一个dayjs
对象,第二个参数是字符串,字符串的值可以是year
、month
、day
、hour
、minute
、second
、millisecond
,分别表示年、月、日、时、分、秒、毫秒。 上述代码的功能是计算2020-12-20T15:00:00.000Z
和2020-12-31T15:00:00.000Z
的时间差,返回值是数字,表示两个时间的差值,单位是第二个参数的单位。
日期范围
dayjs().isBetween(dayjs('2020-12-31T15:00:00.000Z'), dayjs('2021-01-01T15:00:00.000Z'))
// 例子
const time = '2020-12-20T15:00:00.000Z'
const isBetween = dayjs(time).isBetween(dayjs('2020-12-31T15:00:00.000Z'), dayjs('2021-01-01T15:00:00.000Z'))
// 输出 false
上述代码中,isBetween
方法的第一个参数是一个dayjs
对象,第二个参数是一个dayjs
对象,返回值是布尔值,表示当前时间是否在两个参数时间之间。
日期最大值
dayjs.max(dayjs('2020-12-31T15:00:00.000Z'), dayjs('2021-01-01T15:00:00.000Z'))
// 例子
const time = '2020-12-20T15:00:00.000Z'
const max = dayjs.max(dayjs(time), dayjs('2021-01-01T15:00:00.000Z'))
// 输出 2021-01-01T15:00:00.000Z
上述代码中,dayjs.max
方法的参数是一个或多个dayjs
对象,返回值是一个dayjs
对象,表示参数中最大的时间。
日期最小值
dayjs.min(dayjs('2020-12-31T15:00:00.000Z'), dayjs('2021-01-01T15:00:00.000Z'))
// 例子
const time = '2020-12-20T15:00:00.000Z'
const min = dayjs.min(dayjs(time), dayjs('2021-01-01T15:00:00.000Z'))
// 输出 2020-12-20T15:00:00.000Z
上述代码中,dayjs.min
方法的参数是一个或多个dayjs
对象,返回值是一个dayjs
对象,表示参数中最小的时间。
获取近七天的日期
const sevenDays = []
for (let i = 0; i < 7; i++) {
sevenDays.push(dayjs().subtract(i, 'day').format('YYYY-MM-DD'))
}
// 输出
[
'2021-01-01',
'2020-12-31',
'2020-12-30',
'2020-12-29',
'2020-12-28',
'2020-12-27',
'2020-12-26'
]
上述代码中,subtract
方法的第一个参数是数字,第二个参数是字符串,字符串的值可以是year
、month
、day
、hour
、minute
、second
、millisecond
,分别表示年、月、日、时、分、秒、毫秒。 该方法的功能是在当前时间的基础上,减去指定的时间,返回值是一个dayjs
对象,表示减去指定时间后的时间。
获取近七天的日期和星期
const sevenDays = []
for (let i = 0; i < 7; i++) {
sevenDays.push({
date: dayjs().subtract(i, 'day').format('YYYY-MM-DD'),
week: dayjs().subtract(i, 'day').format('dddd')
})
}
// 输出
[
{date: '2021-01-01', week: '星期一'},
{date: '2020-12-31', week: '星期日'},
{date: '2020-12-30', week: '星期六'},
{date: '2020-12-29', week: '星期五'},
{date: '2020-12-28', week: '星期四'},
{date: '2020-12-27', week: '星期三'},
{date: '2020-12-26', week: '星期二'}
]
其中,dddd
表示星期几,dddd
的值可以是dddd
、ddd
、dd
、d
,分别表示星期几、星期几的缩写、星期几的缩写、星期几的数字。 例如,dddd
的值是星期一
,ddd
的值是周一
,dd
的值是一
,d
的值是1
。