前端时间处理(格式化、时间加减法)

关于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.
暂时想不到别的了,以后有遇到再补充

发布了12 篇原创文章 · 获赞 3 · 访问量 172

猜你喜欢

转载自blog.csdn.net/weixin_46592036/article/details/104940741