Preface
前端很多场景都会涉及到对时间的处理,我所用得最多的库是moment。本文是对moment的高频用法的总结。
用法总结
指定语言;不然可能引起一些不必要的bug。
1 | # 记得指定为对应的语言; |
获取时间戳
1 | # 精确到毫秒 |
生成指定时间的moment
1 | moment("1995-12-25"); |
获取对象
1 | moment().toObject(); |
格式化
1 | moment().format(); |
获取时间
1 | # 获取今天0时0分0秒 |
获取当月第一天是星期几
1 | # 用于设置星期几,其中星期日为 0、星期六为 6 |
获取前n天 / 后n天
1 | moment().add(7, 'days'); |
比较两个时间的大小
1 | # 第二个参数用于确定精度,且不仅仅是要检查的单个值,因此使用 day 将会检查年份、月份、日期。 |
两个时间的相差几天
1 | moment([2008, 2, 27]).diff([2007, 0, 28], 'day'); |
是否是闰年
1 | moment().isLeapYear(); |
获取 月份和星期 枚举列表
1 | moment.months() |
克隆
所有的 moment
都是可变的。 调用任何一种操作方法都会改变原始的 moment
。 如果要创建副本并对其进行操作,则应在操作 moment
之前使用 moment#clone
。1
2
3
4
5
6
7
8
9
10
11
12# 在 moment 上调用 moment() 将会克隆它。
var a = moment([2012]);
var b = moment(a);
a.year(2000);
b.year(); // 2012
# 此外,也可以调用 moment#clone 克隆 moment。
var a = moment([2012]);
var b = a.clone();
a.year(2000);
b.year(); // 2012
获取当月总天数
1 | moment().daysInMonth() |