moment.js
1.1、moment.js简介
是什么 ?:a JavaScript library to parse, validate, manipulate, and display dates and times.
开发语言:JavaScript
官方主页:
源码仓库:https://github.com/chartjs/Chart.js
运行环境:Web浏览器Node.js Runtime
1.2、在前端开发中引入moment.js
1.2.1、通过开源CDN引入RxJS

jsDelivr⤵︎

<script src="https://cdn.jsdelivr.net/npm/moment@2.25.1/moment.min.js"></script>

BootCDN⤵︎

<script src="https://cdn.bootcdn.net/ajax/libs/moment.js/2.25.1/moment.min.js"></script>
1.2.2、通过下载到本地引入moment.js

step1、通过包管理器安装moment.js

包管理器安装命令
bowerbower install moment --save
npmnpm install moment --save
yarnyarn add moment

step2、在HTML代码中引入JavaScript

<script src="/bower_components/moment/moment.min.js"></script>
1.3、在Node.js中引入moment.js

step1、通过包管理器安装moment.js

包管理器安装命令
npmnpm install moment --save
yarnyarn add moment

step2、在Node.js代码中导入

var moment = require("moment");
1.4、moment构造函数

moment构造函数有很多,形式非常丰富。

1.4.1、moment()

不带任何参数的构造函数是使用的当前时区、当前时间。

1.4.2、moment(String iso_8601)

参数是一个字符串的时候,传入的字符串是必须是符合ISO_8601规则的时间字符串。

示例:

var day = moment("2013-02-08");
var day = moment("2013-02-08 09");
var day = moment("2013-02-08 09:30");
var day = moment("2013-02-08 09:30:26");
var day = moment("2013-02-08 09:30:26.123");
1.4.3、moment(String dateTimeStr, String pattern)

当我们的时间字符串不符合ISO_8601规则的时候。我们就需要使用这个构造函数了。第二个参数是必须符合规则的格式化字符串。

示例:

var day = moment("2012/09/01", "YYYY/MM/DD");
1.4.4、moment({})

传入一个时间对象。

示例:

moment({ hour:15, minute:10 });
moment({ y    :2010, M     :3, d   :5, h    :15, m      :10, s      :3, ms          :123});
moment({ year :2010, month :3, day :5, hour :15, minute :10, second :3, millisecond :123});
moment({ years:2010, months:3, days:5, hours:15, minutes:10, seconds:3, milliseconds:123});
moment({ years:2010, months:3, date:5, hours:15, minutes:10, seconds:3, milliseconds:123});
moment({ years:'2010', months:'3', date:'5', hours:'15', minutes:'10', seconds:'3', milliseconds:'123'});  // from 2.10.7
1.4.5、moment(Number)

传入的是Unix Timestamp格式的时间,是一个毫秒数, 与Java中的System.currentTimeMills()的类型一致, 在Java里面是long类型,是个13位的数字。

示例:

moment(1318781876406).format('YYYY-MM-DD HH:mm:ss'); //2014-09-24 23:36:09
1.5、format(String pattern)

格式化日期和时间。

格式有下面这些:

1.6、fromNow()

与当前时间比较。

示例:

moment("20120901", "YYYYMMDD").fromNow(); //2 years ago
1.7、add(String field, Number num)

给指定的域加上指定的数。

示例:

moment().add('days',7).format('YYYY年MM月DD日'); //2014年10月01日
moment().add('hours',9).format('HH:mm:ss');