关于moment.js处理时间
前端开发的小伙伴应该都经常会遇到要处理时间格式的情况,力推moment.js,个人觉得很便捷。
一、安装使用
官方链接: moment.js.
下载
官网直接下载或者npm
使用
1.直接下载,引用moment.js
2.npm
const moment = require('moment')
二、日期格式化
官网给出的几种情况(都是当前日期,若指定日期date, moment(date).format())
moment().format('MMMM Do YYYY, h:mm:ss a'); // 三月 18日 2020, 9:31:24 上午
moment().format('dddd'); // 星期三
moment().format("MMM Do YY"); // 3月 18日 20
moment().format('YYYY [escaped] YYYY'); // 2020 escaped 2020
moment().format(); // 2020-03-18T09:31:24+08:00
补充
moment(date).format('YYYY-MM-DD HH:mm:ss')
moment(date).format('YYYY-MM-DD')
moment(date).format('YYYY~MM~DD HH:mm:ss')
moment(date).format('YYYY~MM~DD')
由此类推还可以自定义很多种格式,包括这种混合分隔符号也是可以的,当然现实中很少有这样的需求
moment(date).format('YYYY~MM-DD HH+mm:ss')
官网还给了一些日历时间,相对时间做参考,这里就不列出来了
二、一些日期计算
1.计算date1,date2的天数差/小时差/分钟差
let diff = moment(date1).format('x') - moment(date1).format('x');
let time = moment.duration(diff);
let days = time.days();//天数差
let hours = time.hours();//小时差
let minutes = time.minutes();//分钟差
2.时间减法,根据当前日期(date)和给定差值(num),和要计算的类型(type,可以是years,months,weeks,days,hours,minutes,seconds)推算前多少个日期,如下
moment(date).subtract(num, type).format('YYYY-MM-DD HH:mm:ss');
//推算(2020-03-25 00:00:00)前一年
moment("2020-03-25 00:00:00").subtract(1, "years").format('YYYY-MM-DD HH:mm:ss');//2019-03-25 00:00:00
//推算(2020-03-25 00:00:00)前5天
moment("2020-03-25 00:00:00").subtract(5, "days").format('YYYY-MM-DD HH:mm:ss');//2020-03-20 00:00:00
其他情况可以以此类推,一般在涉及同比环比的需求中会用到
3.时间加法同理,根据当前日期(date)和给定差值(num),和要计算的类型(type,可以是years,months,weeks,days,hours,minutes,seconds)推算前多少个日期,如下
moment(date).add(num, type).format('YYYY-MM-DD HH:mm:ss');
//推算(2020-03-25 00:00:00)后一年
moment("2020-03-25 00:00:00").add(1, "years").format('YYYY-MM-DD HH:mm:ss');//2021-03-25 00:00:00
//推算(2020-03-25 00:00:00)后5天
moment("2020-03-25 00:00:00").add(5, "days").format('YYYY-MM-DD HH:mm:ss');//2020-03-30 00:00:00
三、Durations
moment中还有时间段的用法,看到一篇写的挺详细的文章,给链接Durations.
暂时想不到别的了,以后有遇到再补充