JavaScript日期处理类库-Moment.js
2020-01-04 21:08:49 阿炯

Moment.js是非常实用的日期工具类,用于日期获取,格式化,设置,比较等等,在目前的JavaScript中解析,验证,操作和显示日期和时间。格式化日期时间、相对时间比较、日历时间、多语言环境支持。


Parse, validate, manipulate, and display dates and times in JavaScript.

引入moment
//require 方式
var moment=require('moment');
//import 方式
import moment from 'moment';

设定moment区域为中国
//require 方式
require('moment/locale/zh-cn')
moment.locale('zh-cn');
//import 方式
import 'moment/locale/zh-cn'
moment.locale('zh-cn');   

格式化时间类型

取当天时间,以YYYY年MM月DD日形式显示
var now=moment().format("YYYY年MM月DD日");

任意时间戳格式化,以YYYY-MM-DD HH:mm:ss形式显示
 var t1=moment(1411641720000).format('YYYY-MM-DD HH:mm:ss');
 
获取前一天日期,格式以YYYY-MM-DD形式显示
var t11=moment().day(0).format('YYYY-MM-DD');

获取本周五日期,格式以YYYY-MM-DD形式显示
var t12=moment().weekday(5).format('YYYY-MM-DD');

获取上周五日期,格式以YYYY-MM-DD形式显示
var t13=moment().weekday(-3).format('YYYY-MM-DD');

可以简单理解为上周倒数第几天,上周倒数第三天就是上周五了,和当天日期无关
获取当前年份、月份、日期
var t14=moment().year()
var t15=moment().month()//此处月份从0开始,当前月要+1
var t16=moment().date();

注意这里,日期不是.day()/days()

结合t14,t15,t16就可以输出你想要的任何和当前日期、月份相关的日期
例如:我想获取去年今天的完整日期:
console.log(`${t14-1}-${t15+1}-${t16}`)

当然这不是获取去年今天日期最好的办法,但你可以拼出很多你想要的组合,下面会介绍更好的获取去年今日的方法。
获取上个月今天的日期,格式以YYYY-MM-DD显示
var t18=moment().subtract(1, 'months').format('YYYY-MM-DD');

获取上个月日期,格式以YYYY-MM显示
var t19=moment().subtract(1, 'months').format('YYYY-MM');

获取前一天日期,格式以YYYY-MM-DD显示
var t20 = moment().subtract(1, 'days').format('YYYY-MM-DD');

获取去年今天的日期,格式以YYYY-MM-DD显示,即简便的获取去年今天日期的方法
var t21= moment().subtract(1, 'year').format('YYYY-MM-DD');

获取两个小时之后的时间
var t22=moment().add(2,'hours').format('YYYY-MM-DD HH:mm:ss');

这个的应用是获取时间戳过期时间
比较也很简单,只要获取当前时间,一样的format用><=号比较就可以了

获取五天前的日期
var t23=moment().subtract(5, 'days').format('YYYY-MM-DD');


最新版本:2.24


官方主页:
https://momentjs.com/
http://momentjs.cn/
https://www.momentjs.com.cn/