使用moment.js轻松管理日期和时间

2014年09月25日 00:36helloweba.com 作者:月光光 标签:JavaScript 

大家在前端Javascript开发中会遇到处理日期时间的问题,经常会拿来一大堆处理函数才能完成一个简单的日期时间显示效果。今天我给大家介绍一个轻量级的Javascript日期处理类库:moment.js,使用它可以轻松解决前端开发中遇到的种种日期时间问题。

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

格式化日期

当前时间:

moment().format('YYYY-MM-DD HH:mm:ss'); //2014-09-24 23:36:09

今天是星期几:

moment().format('d'); //3

转换当前时间的Unix时间戳:

moment().format('X');

相对时间

20120901相对当前日期是2年前

moment("20120901", "YYYYMMDD").fromNow(); //2 years ago

7天后的日期:

moment().add('days',7).format('YYYY年MM月DD日'); //2014年10月01日

9小时后的时间:

moment().add('hours',9).format('HH:mm:ss');

moment.js提供了丰富的说明文档,使用它还可以创建日历项目等复杂的日期时间应用。我们日常开发中最常用的是格式化时间,下面我把常用的格式制作成表格说明供有需要的朋友查看:

格式代码 说明 返回值例子
M 数字表示的月份,没有前导零 1到12
MM 数字表示的月份,有前导零 01到12
MMM 三个字母缩写表示的月份 Jan到Dec
MMMM 月份,完整的文本格式 January到December
Q 季度 1到4
D 月份中的第几天,没有前导零 1到31
DD 月份中的第几天,有前导零 01到31
d 星期中的第几天,数字表示 0到6,0表示周日,6表示周六
ddd 三个字母表示星期中的第几天 Sun到Sat
dddd 星期几,完整的星期文本 从Sunday到Saturday
w 年份中的第几周 如42:表示第42周
YYYY 四位数字完整表示的年份 如:2014 或 2000
YY 两位数字表示的年份 如:14 或 98
A 大写的AM PM AM PM
a 小写的am pm am pm
HH 小时,24小时制,有前导零 00到23
H 小时,24小时制,无前导零 0到23
hh 小时,12小时制,有前导零 00到12
h 小时,12小时制,无前导零 0到12
m 没有前导零的分钟数 0到59
mm 有前导零的分钟数 00到59
s 没有前导零的秒数 1到59
ss 有前导零的描述 01到59
X Unix时间戳 1411572969

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

11条评论

  • 街角的风铃ゝ

    转毫秒数可以这样写 Number(moment('YYYY-MM-DD HH:mm:ss').format('X')) * 1000

  • 安等暖阳

    moment().format('X');这个我用起来不对啊

  • 如何获取当前星期几(中文)。以及获取明天、后台.....等。

  • 有的,,就是这个方法:moment().format('YYYY-MM-DD HH:mm:ss'); //2014-09-24 23:36:09
    这样就可以了。moment(1437925575663).format('YYYY-MM-DD HH:mm:ss'); //2015-07-26 23:46:15

  • 请问,咋用里面提到的Max和min的方法,总是报错。

  • 有的,,就是这个方法:moment().format('YYYY-MM-DD HH:mm:ss'); //2014-09-24 23:36:09
    这样就可以了。moment(1437925575663).format('YYYY-MM-DD HH:mm:ss'); //2015-07-26 23:46:15

  • 是的 ,没有知道办法 ,继续找吧

  • 时间戳用这个没有办法转么?~~~~

  • 额,竟然没有把时间戳转换为时间

  • 在大树的保护下成长的小嫩芽!

  • 谢谢 大哥 让我们这些小白 获益良多