这两天做项目常常用到都数据库中的时间进行处理,由于原生的日期格式并不是太好处理,所以选用momentjs来对日期进行一些常规的处理,momentjs对js中的date对象进行了一层封装,使之具有更加强大日期处理能力。下面说下momentjs在使用中的心得。
Momentjs支持多个环境,既可以在浏览器中使用,也可以脱离浏览器的环境在nodejs中使用。在nodejs中使用momentjs的话需要安装moment模块,然后加载模块就行了 命令如下:
npm install moment
var moment = require(‘moment’);
在浏览器中使用使用 则用<script src = “moment.js”></script>引入momentjs文件即可,使用的时候在nodejs和浏览器中并没有什么区别
momentjs方法的使用说明如下:
获得当前的时间
使用moment()即可获取当前时间,相当于moment(new Date()) 此处会返回一个moment封装的日期对象
初始化一个指定的时间
1. 给moment()函数传递一个iso86601日期格式的对象
var date = moment(“2015-11-26”);// iso日期格式的字符串2. 传入一个字符串但是后面必须要用moment支持的格式符标识一下怎么解析.
var date = moment(“12/25/1995”,”MM-DD-YYYY”);//传入moment支持的格式符 具体的格式符可以看文档 其实传入入格式符的方式解析时间字符串就是在 底层用了format()
3. 传入一个具有日期字段的对象
var date = moment({year:2015,month:10,day:26,hour:22});
4. 传入一个数组,但是顺序依次为[year, month, day, hour, minute, second, millisecond] var date =moment([2015,10,26]);
5. 传入一个整数 用来创建出一个从1970 UTC以来开始计时number后的时间var date = moment(Number)验证传入的日期字符串是否合法使用moment对象的isValid()方法
var m = moment(“2011-10-10T10:20:90”)
m.isValid()// false 验证发现字符串不合法
m.invalidAt()// 5 代表不合法的字符在seconds
获取某个具体的时间点的值
//获取当前时间的某位值
moment().millisecond()===moment().get(“milisecond”)
Moment().second() moment().hour() moment().week()//一年中的哪一周
moment().day()//获取星期 moment().date()//获取月份中的日期
设置某个时间点的值只需要给这些方法传入参数即可
即:moment().date(12)===moment().set(“date”:12);
比较传入日期的最大值最小值
a = moment().subtract(1,”day”)//当前时间减去1天
b = moment().add(1,”day”);//当前时间加上1天
moment.max(a,b);
moment.min(a,b);
时间差(默认返回相差的毫秒数)
var a = moment([2007,0,29])
var b = moment([2007,0,28])
a.diff(b)//86400000
a.diff(b,”days”)//1返回相差的天数
开始结束时间
moment().endOf(“year”)//将时间设置为今年的最后时刻
moment().startOf(“month”)://将时间设置为这个月的开始
将moment对象转化为Date对象
moment().toDate()