JavaScript前端时间库moment.js
1、获取当前时间
moment().format("YYYY-MM-DD HH:mm:ss"); moment().format("YYYY-MM-DD"); moment().format("YYYY年MM月DD日HH时mm分ss秒"); moment().format("YYYY年MM月DD日");
2、获取前几天时间-时间加减-add和subtract
moment().subtract(3, "hours").format("YYYY-MM-DD"); //当前时间的前3个小时时间 moment().subtract(10, "days").format("YYYY-MM-DD"); //当前时间的前10天时间 moment().subtract(1, "years").format("YYYY-MM-DD"); //当前时间的前1年时间 moment().subtract(3, "months").format("YYYY-MM-DD"); //当前时间的前3个月时间
moment().add(3, "hours").format("YYYY-MM-DD"); //当前时间的后3个小时时间 moment().add(10, "days").format("YYYY-MM-DD"); //当前时间的后10天时间 moment().add(1, "years").format("YYYY-MM-DD"); //当前时间的后1年时间 moment().add(3, "months").format("YYYY-MM-DD"); //当前时间的后3个月时间
3、时间和字符串互转
moment("20111031", "YYYYMMDD").format('YYYY/MM/DD') moment("2011-10-31").format('YYYY/MM/DD')//标准格式可以不用传格式 moment("2011-10-31").format('YYYY年MM月DD日')//标准格式可以不用传格式
4、时间的开始和最后-startOf和endOf
moment().startOf('day').format('YYYY-MM-DD HH:mm:ss') // 当天0点的时间格式 moment().endOf('day').format('YYYY-MM-DD HH:mm:ss') // 当天23点59分59秒的时间格式
moment(日期).startOf('month').format("YYYY-MM-DD")//某月第一天 moment(日期).endOf('month').format("YYYY-MM-DD")//某月最后一天
moment(日期).startOf('year').format("YYYY-MM-DD")//某年第一天 moment(日期).endOf('year').format("YYYY-MM-DD")//某年最后一天
5、时间戳--format('x')
时间转时间戳
moment('2020-06-30').startOf('day').format('X').unix()//大写X--返回10位时间戳-单位:秒 moment('2020-06-30').startOf('day').format('x').valueOf()//小写x--返回13位时间戳-单位:毫秒
时间戳转时间:
moment(parseInt(时间戳)).format(‘YYYY-MM-DD hh:mm:ss’);
6、单独获取年、月、日、时、分秒
moment().year()
moment().get(‘year‘)
moment().month() // (0~11, 0: January, 11: December) moment().get(‘month‘)
moment().date()
moment().get(‘date‘)
moment().hours()
moment().get(‘hours‘)
moment().minutes()
moment().get(‘minutes‘)
moment().seconds()
moment().get(‘seconds‘)
获取一个星期中某一天
moment().day() // (0~6, 0: Sunday, 6: Saturday) moment().weekday() // (0~6, 0: Sunday, 6: Saturday) moment().isoWeekday() // (1~7, 1: Monday, 7: Sunday) moment().get(‘day‘) mment().get(‘weekday‘) moment().get(‘isoWeekday‘)
7、比较2个时间差--diff
let start_date = moment().subtract(1, 'weeks') let end_date = moment() end_date.diff(start_date) // 返回毫秒数 end_date.diff(start_date, 'months') // 0 end_date.diff(start_date, 'weeks') // 1 end_date.diff(start_date, 'days') // 7 start_date.diff(end_date, 'days') // -7
8、其他方法使用-isBetween和isBefore
this.moment('2010-10-20').isBetween('2010-10-19', '2010-10-25'); // true this.moment('2010-10-19').isBetween('2010-10-19', '2010-10-25'); // false this.moment('2010-10-25').isBetween('2010-10-19', '2010-10-25'); // false
this.moment('2016-10-30').isBetween('2016-10-30', '2016-12-30', null, '()'); //false this.moment('2016-10-30').isBetween('2016-10-30', '2016-12-30', null, '[)'); //true this.moment('2016-10-30').isBetween('2016-01-01', '2016-10-30', null, '()'); //false this.moment('2016-10-30').isBetween('2016-01-01', '2016-10-30', null, '(]'); //true this.moment('2016-10-30').isBetween('2016-10-30', '2016-10-30', null, '[]'); //true
moment('2022-04-20').isBefore('2022-04-25'); // true => 第一个日期在第二个日期前 moment('2022-04-28').isBefore('2022-04-25'); // false => 第一个日期不在第二个日期前 moment('2022-04-25').isBefore('2022-04-25'); // false => 两个日期相同
moment('2010-10-20').isBefore('2010-12-31', 'year'); // false moment('2010-10-20').isBefore('2011-01-01', 'year'); // true