这是我参与更文挑战的第6天,活动详情查看 更文挑战
moment.js是一个非常实用的日期工具类,可以获取或者格式化日期等,为了不要每次都去官网查询,所以对一些经常使用的用法进行一个整理记录。
时间获取
获取当前的时间
//获取当前时间 (年月日时分秒)
moment().format('YYYY-MM-DD HH:mm:ss')
//获取当前时间戳
moment().valueOf()
//获取近一个月时间,如(2021-06-09~2021-07-09)
moment(new Date()).subtract(1,'months').format('YYYY-MM-DD')+'~'+moment().format('YYYY-MM-DD')
//只获取年,如2021年
moment().year();
//只获取月,如6月(此处月份从0开始,当前月要+1)
moment().month()+1;
//只获取日,如13号
moment().date();
//本月第一天
moment().startOf('month').format('YYYY-MM-DD');
//本年第一天
moment().startOf('year').format('YYYY-MM-DD');
//本年最后一天
moment().endOf('year')
获取【之前】的时间
//获取去年的今天
moment().subtract(1, 'year').format('YYYY-MM-DD');
//获取上个月的今天
moment().subtract(1, 'months').format('YYYY-MM-DD');
//获取上周五(可以简单理解为上周倒数第几天,上周倒数第三天就是上周五了,和当天日期无关)
moment().weekday(-3).format('YYYY-MM-DD');
//获取5天前的日期
moment().subtract(5, 'days').format('YYYY-MM-DD');
//获取前一(年月日时分秒),负数就是往前的时候,正数就是往后的时间
moment().add(-1,'year').format('YYYY-MM-DD HH:mm:ss') //前一【年】
moment().add(-1,'month').format('YYYY-MM-DD HH:mm:ss') //前一【月】
moment().add(-1,'week').format('YYYY-MM-DD HH:mm:ss') //前一【周】
moment().add(-1,'days').format('YYYY-MM-DD HH:mm:ss') //前一【天】
moment().add(-1,'hour').format('YYYY-MM-DD HH:mm:ss') //前一【小时】
moment().add(-1,'minute').format('YYYY-MM-DD HH:mm:ss') //前一【分钟】
moment().add(-1,'second').format('YYYY-MM-DD HH:mm:ss') //前一【秒】
获取【之后】的日期
//获取指定日期当月的最后一天
moment("2021-01-01").endOf('month').format("YYYY-MM-DD") //结果2021-01-31
//获取本周五
moment().weekday(5).format('YYYY-MM-DD');
//本月最后一天
moment().endOf('year').format('YYYY-MM-DD');
//本年最后一天
moment().endOf('month').format('YYYY-MM-DD');
时间格式化
格式化当前时间为时间戳
//格式化时间戳(以秒为单位)
moment().format('X')
//格式化时间戳(以毫秒为单位)
moment().format('x') === moment().valueOf();
时间戳格式化
moment(1623496322380).format('YYYY-MM-DD HH:mm:ss');
【中国标准时间】互转
let time = new Date();//Sat Jun 13 2021 14:29:52 GMT+0800 (中国标准时间)
//转为时间格式
let time2 = moment(time).format("YYYY-MM-DD HH:mm:ss") //2021-06-12 14:29:52
//转回中国标准时间
new Date(2021-06-12 14:29:52);
//转为时间戳
let time3 = moment(time).valueOf()//毫秒
//转为时间戳,并且指定时分秒
let time4 = moment(time).hours(23).minutes(59).seconds(59).valueOf()
UTC格式化
moment().utc().format("YYYY-MM-DD HH:mm:ss")
时间比较
是否之前
moment('2020-10-20').isBefore('2021-10-21'); // true
moment('2020-10-20').isBefore('2020-12-31', 'year'); // false
moment('2020-10-20').isBefore('2021-01-01', 'year'); // true
是否相同(判断年月日)
包含第二个参数时,则它将会匹配所有等于或更大的单位。 传入 month 将会检查 month 和 year。 传入 day 将会检查 day、month 和 year。
moment('2010-10-20').isSame('2010-10-20'); // true
moment('2010-10-20').isSame('2010-12-31', 'year'); // true
moment('2010-01-01').isSame('2011-01-01', 'month'); // false, 不同的年份
moment('2010-01-01').isSame('2010-02-01', 'day'); // false, 不同的月份
是否之后
第二个参数用于确定精度,且不仅仅是要检查的单个值,因此使用 day 将会检查年份、月份、日期。
moment('2010-10-20').isAfter('2010-10-19'); // true
moment('2010-10-20').isAfter('2010-01-01', 'year'); // false
moment('2010-10-20').isAfter('2009-12-31', 'year'); // true
是否之间
moment('2010-10-20').isBetween('2010-10-19', '2010-10-25'); // true
时间计算
计算两个时间的差值diff
moment(endTime).diff(moment(startTime), 'years')
moment(endTime).diff(moment(startTime), 'months')
// 开始时间和结束时间的时间差,以“天”为单位;endTime和startTime都是毫秒数
moment(endTime).diff(moment(startTime), 'days')
moment(endTime).diff(moment(startTime),'minutes' )
moment(endTime).diff(moment(startTime), 'seconds')
小可爱看完就点个赞再走吧!🤞🤞🤞