Day.js 常用方法

431 阅读3分钟

参考:dayjs.fenxianglu.cn/category/#n…

安装

npm install dayjs --save

引入

import dayjs from 'dayjs';

初始化日期 / 时间,格式化日期 / 时间

dayjs().format('YYYY-MM-DD');		    // 初始化日期
dayjs().format('YYYY-MM-DD HH:mm:ss');  // 初始化日期时间

dayjs(value).format('YYYY-MM-DD');			// 格式化日期
dayjs(value).format('YYYY-MM-DD HH:mm:ss'); // 格式化日期时间

加 / 减

dayjs().add / dayjs().subtract 代表在当前时间上去加减; 所有可用单位列表:week,day,month,year,hour,minute,second,millisecond

dayjs().add(7, 'day').format('YYYY-MM-DD');   // 2022-04-27 今天(2022-04-20)加上7天
dayjs().add(1, 'month').format('YYYY-MM-DD');   // 2022-05-20 今天(2022-04-20)加上一月

dayjs().subtract(2, 'year').format('YYYY-MM-DD');   // 2020-05-20 今天(2022-04-20)减去2年
dayjs().subtract(2, 'hour').format('YYYY-MM-DD HH:mm:ss');   // 2022-04-20 14:03:39 今天现在(2022-04-20 16:03:39)减去2小时

获取某年某月的第一天或最后一天

  • 获取某年某月的第一天
dayjs().startOf('year').format('YYYY-MM-DD HH:mm:ss')   // 2022-01-01 00:00:00  => 第一天格式化出来的时分秒都是0
dayjs().startOf('month').format('YYYY-MM-DD')   // 2022-04-01

  • 获取某年某月的最后一天
dayjs().endOf('year').format('YYYY-MM-DD HH:mm:ss')   // 2022-12-31 23:59:59  => 最后时间 格式化出来的时分秒是23:59:59
dayjs().endOf('month').format('YYYY-MM-DD')   // 2022-04-30

获取星期几

dayjs().day() : 返回0(星期日)到6(星期六)的数字

dayjs().day(6).format('YYYY-MM-DD'):获取最近周六的日期 => 2022-04-23
dayjs().day(0).format('YYYY-MM-DD'):获取最近周日的日期 => 2022-04-17

获取毫秒数

dayjs('2019-01-25').valueOf() 或 dayjs().valueOf()

获取时间差(默认输出的差值单位是毫秒)

dayjs('2019-01-25').diff('2018-06-05', 'month');         // 7
dayjs('2019-01-25').diff(dayjs('2018-06-05'), 'month');  // 7

获取各单位的值

console.log('-----获取年', dayjs().year());    // ==>> 2022
console.log('-----获取月', dayjs().month());   // 0到11的数字 ==>> 3
console.log('-----获取星期', dayjs().day());   // 0(星期日)到6(星期六)的数字 ==>> 3
console.log('-----获取天', dayjs().date());    // 1到31的数字 ==>> 20
console.log('-----获取小时', dayjs().hour());  // 0到23的数字 ==>> 16
console.log('-----获取分钟', dayjs().minute());// 0到59的数字 ==>> 55
console.log('-----获取秒', dayjs().second());  // 0到59的数字 ==>> 55
console.log('-----获取毫秒', dayjs().millisecond());  // 0到999的数字 ==>> 333

判断一个日期是否在另外一个日期之后 isAfter

// day.js 为 2022-04-20
console.log('isAfter', dayjs().isAfter(dayjs('2011-01-01'))) 			 	// true
console.log('isAfter', dayjs('2022-04-20').isAfter(dayjs('2022-04-21')))	// false
console.log('isAfter', dayjs('2022-04-20').isAfter(dayjs('2022-04-20')))	// 相同也为false


判断一个日期是否在另外一个日期之前 isBefore

// day.js 为 2022-04-20
console.log('isBefore', dayjs().isBefore(dayjs('2011-01-01')))             // false
console.log('isBefore', dayjs('2022-04-20').isBefore(dayjs('2022-04-21'))) // true
console.log('isBefore', dayjs('2022-04-20').isBefore(dayjs('2022-04-20'))) // 日期相同时也为false


判断两个日期是否相同 isSame

// day.js 为 2022-04-20
console.log('isSame', dayjs().isSame(dayjs('2011-01-01')))  			// false
console.log('isSame', dayjs('2022-04-20').isSame(dayjs('2022-04-21')))	// false
console.log('isSame', dayjs('2022-04-20').isSame(dayjs('2022-04-20')))	// true