时间处理工具 moment.js:管理时间和日期,so easy!

时间:2021-07-17 21:28:29

大家在项目中一定会遇到很多关于时间处理的问题,比如你想获取一个本地时间格式为YYYY-MM-DD,常用的方法是先拿到时间再用正则替换什么的。比较麻烦,也比较费劲。每次都要弄。所以呢就想着有没有什么简单的方法,之后就发现了一个轻量级的Javascript日期处理类库:moment.js,使用它可以轻松解决前端开发中遇到的种种日期时间问题。

moment.js不依赖任何第三方库,支持字符串、Date、时间戳以及数组等格式,可以像PHP的date()函数一样,格式化日期时间,计算相对时间,获取特定时间后的日期时间等等,本文有如下举例。

格式化日期

moment().format('YYYY-MM-DD HH:mm:ss');     //2014-09-24 23:36:09获取当前时间
moment().format('MMMM Do YYYY, h:mm:ss a'); // 七月 13日 2015, 10:53:40 上午
moment().format('dddd'); // 星期一
moment().format("MMM Do YY"); // 7月 13日 15
moment().format('YYYY [escaped] YYYY'); // 2015 escaped 2015
moment().format(); // 2015-07-13T10:53:40+08:00

相对时间

moment("20111031", "YYYYMMDD").fromNow(); // 2011年10月31日距离现在的时间
moment().startOf('day').fromNow(); // 今天过了多久
moment().endOf('day').fromNow(); // 还有几个小时今天就结束了
moment().startOf('hour').fromNow(); //这个小时过去了几分钟
moment().add('days',3).format('YYYY-MM-DD'); //三天后的日期

多样化的本地时间

moment().format('L');    // 2015-07-13 标准本地时间
moment().format('l'); // 2015-07-13
moment().format('LL'); // 2015年7月13日
moment().format('ll'); // 2015年7月13日
moment().format('LLL'); // 2015年7月13日上午10点55
moment().format('lll'); // 2015年7月13日上午10点55
moment().format('LLLL'); // 2015年7月13日星期一上午10点55
moment().format('llll'); //2015年7月13日星期一上午10点55

moment.js提供了丰富的说明文档。我们日常开发中最常用的是格式化时间,下面列举一下所有的时间格式

格式代码 说明 例子
YYYY 4位数字年份 2010、2012
YY 两位数字年份 15
M 月份的数字值没有前导0 1、2...10
MM 月份的数字值有前导0 01、02...12
MMM 三个字母缩写的月份 Jan到Dec
MMM 月份的英文全拼 January到December
Q 返回现在是第几个季度 1、2、3、4
D 当前是几号,没有前导0 1、2...31
DDD 一年中的第几天 1、2...365
DD 当前是几号,有前导0 01、02...31
d 周几 0、1...6,0表示周日,6表示周六
ddd 三个字母的周几缩写 Sun到Sat
dddd 周几全拼 Sunday到Saturday
w 一年中的的几周 eg:10代表第10周
A 上午或下午大写 AM、PM
a 小午或下午大写 am、pm
HH 小时,24小时制,有前导零 00、01...23
H 小时,24小时制,无前导零 0、1...23
hh 小时,12小时制,有前导零 00、01...12
hh 小时,12小时制,无前导零 0、1...12
mm 分钟,有前导0 00、01...59
m 分钟,无前导0 0、1...59
ss 秒,有前导0 00、01..59
s 秒,无前导0 0、1..59
X Unix时间戳(秒级) 1410715640.579
x Unix时间戳(毫秒级) 1410715640579

更多有关moment.js的介绍,请访问项目官网:http://momentjs.com/