什么是moment.js
Moment.js是一个轻量级的JavaScript时间库,日常开发中,通常会对时间进行下面这几个操作:比如获取时间,设置时间,格式化时间,比较时间等等。Moment.js不会修改本机Date.prototype,而是为Date对象创建一个包装器。 要获取这个包装器对象,只需调用moment()。
如果你想添加自己的功能,可以通过moment.fn进行自定义。接下来,我将按照这些操作对Moment.js中的Doc进行整理分类,方便学习和日后的查阅。
常用的方法以及使用
首先第一步引入
引入moment的方法有很多,我这边直接把moment.js直接下载放到静态文件目录下,等等。
格式化事件
- 当前时间:
moment().format('YYYY-MM-DD HH:mm:ss'); //2020-11-22 12:17:45
//注意当moment里面什么也不传的时候获取当前的事件
- 今天是星期几
moment().format('d'); //0
//这里获取的时间排序为周天-周六,分别为0-6
- 今年是哪一年
moment().year(); //2020(数字类型)
- 当前月
moment().format('MM') //"11" (字符串)
- 当前季度
moment().quarter() //4(数字类型)
- 转换当前时间的Unix时间戳(从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒。)
moment().format('X'); //1.html:13 1606018854
- 创建总结
moment().format('YYYY-MM-DD')//2020-11-22
moment("1995-12-25").format('YYYY-MM-DD') // 1995-12-25
moment("12-25-1995", "MM-DD-YYYY") // 1995-12-25
moment({ year :2010, month :3, day :5, hour :15, minute :10, second :3, millisecond :123}).format('YYYY-MM-DD HH:mm:ss') //"2010-04-05 15:10:03"
moment(Date.now() - 24 * 60 * 60 * 1000).format('YYYY-MM-DD') // "2020-11-21"
moment(new Date(2011, 9, 16)).format('YYYY-MM-DD') // 2011-10-16
相对时间
2018.11.22相对是两年前
moment("2018.11.22", "YYYYMMDD").fromNow(); //"2 years ago"
xx前后,天days,小时hours其他类推
// 7天前的日期:
moment().subtract('days',7).format('YYYY年MM月DD日'); // "2020年11月15日"
//七天后的日期
moment().add('days', 7).format('YYYY年MM月DD日')//"2020年11月29日"(坏)
moment().add(7,'days').format('YYYY年MM月DD日')//"2020年11月29日"(好)
查询
// 早于
moment('2010-10-20').isBefore('2010-10-21') // true
moment('2010-10-20').isBefore('2010-12-31', 'year') // false
moment('2010-10-20').isBefore('2011-01-01', 'year') // true
// 是否相等
moment('2010-10-20').isSame('2010-10-20') // true
moment('2010-10-20').isSame('2009-12-31', 'year') // false
moment('2010-10-20').isSame('2010-01-01', 'year') // true
// 晚于
moment('2010-10-20').isAfter('2010-10-19') // true
moment('2010-10-20').isAfter('2010-01-01', 'year') // false
moment('2010-10-20').isAfter('2009-12-31', 'year') // true
// 是否在时间范围内
moment('2010-10-20').isBetween('2010-10-19', '2010-10-25') // true
moment('2010-10-20').isBetween('2010-01-01', '2012-01-01', 'year') // false
moment('2010-10-20').isBetween('2009-12-31', '2012-01-01', 'year') // true
moment().isLeapYear() // 是否是闰年
moment.js提供了丰富的说明文档,使用它还可以创建日历项目等复杂的日期时间应用。我们日常开发中最常用的是格式化时间,下面我把常用的格式制作成表格说明供有需要的朋友查看
Moment.js 是我到现在用过的最好用的操作时间的工具库。它使得操作时间变得很简单。希望对你们有用~