moment.js使用笔记

介绍:

moment.js是一个专门用来处理时间的函数库,可以在浏览器和node.js环境中使用。

安装:npm i moment --save

使用:

import moment from 'moment' 

const moment = require('moment')

这里引入的moment其实就是一个函数,会根据传入的参数返回一个moment实例

moment实例实际上就对Date对象的一层包装

moment实例有大量的方法可以使用,足以满足日常业务需求。

一.创建moment实例

    1 根据当前日期创建实例:moment();

    2 根据date对象创建实例:moment(new Date());

    3 根据字符串创建实例:moment('2018--10--10' ,'YYYY--MM--DD');第一参数为时间字符串,第二参数为该时间的格式

如果一个字符串是符合ISO 8601 标准的时间字符串,则不需要传入第二个参数,如:moment('2018-10-10')

时间的格式参考官网http://momentjs.cn/docs/#/parsing/

第二个参数也可以是时间格式的数组,用于处理格式可能存在多样的情况

moment("29-06-1995", ["MM-DD-YYYY", "DD-MM", "DD-MM-YYYY"]); // uses the last format
moment("05-06-1995", ["MM-DD-YYYY", "DD-MM-YYYY"]);          // uses the first format

     4 根据毫秒数创建实例:moment(Number)

     5 根据时间戳创建实例 : moment(Number)

     6 复制一个moment : moment (Moment)或者 var a= moment(); var b= a.clone()

二.根据moment实例获取我们想要的格式数据

var mom= moment();

1 获得格式化字符串 mom.format("YYYY-MM-DD HH:mm:ss")  (此处重点,注意分和秒的大小写)细节参考http://momentjs.cn/docs/#/displaying/

2 获得和设置毫秒,秒,日(月),日(周),周,月,年参考文档

3 最大(小)日期

moment.max(Moment[,Moment...]);
moment.min(Moment[,Moment...]);

三 操作moment

moment对象是mutable的对象,每次操作都会返回一个新的moment

1 加法:

moment().add(7, 'days');

moment.js使用笔记_第1张图片

2 剪法:

moment().subtract(1,'days')

3 链式调用:moment().add(1,'d').subtract(1,M)

4 设置年月日时分秒:

moment().year(2018).month(0).date(1).hours(0).minutes(0).seconds(0).milliseconds(0);

四  比较

moment的时间十分语义化

1.是否之前

 

moment().isBefore(Moment|String|Number|Date|Array);
moment().isBefore(Moment|String|Number|Date|Array, String);

 第一参数是时间,可以是moment实例也是可以是其他,第二参数是是比较的精度(如果是year则只比较年,如果是day则会比较年月日)

moment('2010-10-20').isBefore('2010-10-21'); // true

2. 是否之后

moment().isAfter(Moment|String|Number|Date|Array);
moment().isAfter(Moment|String|Number|Date|Array, String);

3. 是否相同

moment().isSame(Moment|String|Number|Date|Array);
moment().isSame(Moment|String|Number|Date|Array, String);

4. 是否之间

moment().isBetween(moment-like, moment-like);
moment().isBetween(moment-like, moment-like, String);
// where moment-like is Moment|String|Number|Date|Array

第三个参数也是精度

5. 是否是闰年

moment().isLeapYear();

6. 是否是moment对象

moment.isMoment(obj);

 7 相同或之前,相同或之后

moment().isSameOrBefore(Moment|String|Number|Date|Array);
moment().isSameOrBefore(Moment|String|Number|Date|Array, String);

moment().isSameOrAfter(Moment|String|Number|Date|Array);
moment().isSameOrAfter(Moment|String|Number|Date|Array, String);

 

你可能感兴趣的:(js)