我们必须承认,JavaScript内建的Date方法实在是太基础了,远不够我们来处理日期。总有人会开发自己的JavaScript日期操作库,为何在能够使用已经开发并测试好的日期插件时还要再自己造个轮子呢。我已经碰到过很多次需要操作日期格式的情形,这些插件将节约大把的时间。
以下插件都拥有许多例如以不同格式显示日期、显示相对时间(如:20分钟前)等特性,他们其中适合于处理两天之间的倒计时。
以下列出6种插件:
1、Datejs
Datejs 是一个开源的JavaScript库,用来解析、格式化和处理日期数据,支持多种语言的日期格式处理。
01 |
// What date is next thrusday? |
02 |
Date.today().next().thursday(); |
03 |
|
04 |
// Add 3 days to Today |
05 |
Date.today().add(3).days(); |
06 |
|
07 |
// Is today Friday? |
08 |
Date.today().is().friday(); |
09 |
|
10 |
// Number fun |
11 |
(3).days().ago(); |
12 |
|
13 |
// 6 months from now |
14 |
var n = 6; |
15 |
n.months().fromNow(); |
16 |
|
17 |
// Set to 8:30 AM on the 15th day of the month |
18 |
Date.today().set({ day: 15, hour: 8, minute: 30 }); |
19 |
|
20 |
// Convert text into Date |
21 |
Date.parse( 'today' ); |
22 |
Date.parse( 't + 5 d' ); // today + 5 days |
23 |
Date.parse( 'next thursday' ); |
24 |
Date.parse( 'February 20th 1973' ); |
25 |
Date.parse( 'Thu, 1 July 2004 22:30:00' ); |
Prettydate 是一个 jQuery 用来显示一些用户友好的日期格式的插件,例如 Posted 2 days ago byJohn Resig
1 |
prettyDate( "2008-01-28T20:24:17Z" ) // => "2 hours ago" |
2 |
prettyDate( "2008-01-27T22:24:17Z" ) // => "Yesterday" |
3 |
prettyDate( "2008-01-26T22:24:17Z" ) // => "2 days ago" |
4 |
prettyDate( "2008-01-14T22:24:17Z" ) // => "2 weeks ago" |
5 |
prettyDate( "2007-12-15T22:24:17Z" ) // => undefined |
Moment.js 是一个简单易用的轻量级JavaScript日期处理类库,提供了日期格式化、日期解析等功能。它支持在浏览器和NodeJS两种环境中运行。此类库能够 将给定的任意日期转换成多种不同的格式,具有强大的日期计算功能,同时也内置了能显示多样的日期形式的函数。另外,它也支持多种语言,你可以任意新增一种 新的语言包。
1 |
//Return relative duration, eg 5 months ago |
2 |
var halloween = moment([2011, 9, 31]); |
3 |
console.log(halloween.fromNow()); |
4 |
|
5 |
// Return current date plus 9 |
6 |
var now = moment().add( 'days' , 9); |
7 |
console.log(now.format( 'dddd, MMMM Do YYYY' )); |
5、XDate
XDate是一个对Javascirpt本地Date对象的轻度包装,它提供对日期的解析、格式化以及其他操作的较强功能。它实现了本地Date对象的相同方法。
1 |
d = new XDate(2011, 7, 31); // August 31 |
2 |
d.setMonth(8); // September |
3 |
d.toString(); // October 1st!!! because there are only 30 says in September |
4 |
|
5 |
// let's try this with preventOverflow... |
6 |
d = new XDate(2011, 7, 31); // August 31 |
7 |
d.setMonth(8, true ); // September |
8 |
d.toString(); // September 30! |
DP_DateExtensions库继承了JavaScript的Date对象,并添加了一些新特性和功能。
-
添加了富特性的timeFormat()以及dateFormat()方法,允许你对时间和日期值进行微操
-
通过add()和diff()方法轻松操作日期
-
通过新的compare()方法简化日期的比较
- 添加转换几个W3C草稿中描述的ISO 8601标准日期格式。
英文地址,OSCHINA 原创翻译