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

时间插件Moment.js使用

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

英文官网:http://momentjs.com/

中文官网:http://momentjs.cn/

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

日期格式化

moment().format('MMMM Do YYYY, h:mm:ss a'); // 十二月 16日 2016, 4:25:17 下午
moment().format('dddd');                    // 星期五
moment().format("MMM Do YY");               // 12月 16日 16
moment().format('YYYY [escaped] YYYY');     // 2016 escaped 2016
moment().format();                          // 2016-12-16T16:25:17+08:00

相对时间

moment("20111031", "YYYYMMDD").fromNow(); // 5 年前
moment("20120620", "YYYYMMDD").fromNow(); // 4 年前
moment().startOf('day').fromNow();        // 16 小时前
moment().endOf('day').fromNow();          // 8 小时内
moment().startOf('hour').fromNow();       // 26 分钟前

日历时间

moment().subtract(10, 'days').calendar(); // 2016年12月6日
moment().subtract(6, 'days').calendar();  // 上周六下午4点26
moment().subtract(3, 'days').calendar();  // 本周二下午4点26
moment().subtract(1, 'days').calendar();  // 昨天下午4点26分
moment().calendar();                      // 今天下午4点26分
moment().add(1, 'days').calendar();       // 明天下午4点26分
moment().add(3, 'days').calendar();       // 下周一下午4点26
moment().add(10, 'days').calendar();      // 2016年12月26日

多语言支持

moment().format('L');    // 2016-12-16
moment().format('l');    // 2016-12-16
moment().format('LL');   // 2016年12月16日
moment().format('ll');   // 2016年12月16日
moment().format('LLL');  // 2016年12月16日下午4点27分
moment().format('lll');  // 2016年12月16日下午4点27分
moment().format('LLLL'); // 2016年12月16日星期五下午4点27分
moment().format('llll'); // 2016年12月16日星期五下午4点27分

其他

获取当前月份时间段
var firstDay = moment().startOf('month').format('YYYY-MM-DD'),
lastDay  = moment().endOf('month').format('YYYY-MM-DD');
获取3个月内的时间段:
var currentMonth = moment().month()+1,
currentYear  = moment().year(),
lastMonth    = currentMonth-3;
lastMonth    = (currentMonth-3)<10?'0'+lastMonth:lastMonth;
var lastDay = moment().startOf('month').format('YYYY-MM-DD'),
firstDay = currentYear +'-'+ lastMonsth + '-01';
获取本周时间段:
var firstDay = moment().day(0).format('YYYY-MM-DD'),
lastDay = moment().day(7).format('YYYY-MM-DD');

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



赞(52) 打赏
未经允许不得转载:优客志 » 前端设计
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏