我們必須承認,JavaScript内建的Date方法實在是太基礎了,遠不夠我們來處理日期。總有人會開發自己的JavaScript日期操作庫,為何在能夠使用已經開發并測試好的日期插件時還要再自己造個輪子呢。我已經碰到過很多次需要操作日期格式的情形,這些插件将節約大把的時間。
以下插件都擁有許多例如以不同格式顯示日期、顯示相對時間(如:20分鐘前)等特性,他們其中适合于處理兩天之間的倒計時。
以下列出6種插件:
Datejs 是一個開源的JavaScript庫,用來解析、格式化和處理日期資料,支援多種語言的日期格式處理。
<code>01</code>
<code>// What date is next thrusday?</code>
<code>02</code>
<code>Date.today().next().thursday();</code>
<code>03</code>
<code> </code>
<code>04</code>
<code>// Add 3 days to Today</code>
<code>05</code>
<code>Date.today().add(3).days();</code>
<code>06</code>
<code>07</code>
<code>// Is today Friday?</code>
<code>08</code>
<code>Date.today().is().friday();</code>
<code>09</code>
<code>10</code>
<code>// Number fun</code>
<code>11</code>
<code>(3).days().ago();</code>
<code>12</code>
<code>13</code>
<code>// 6 months from now</code>
<code>14</code>
<code>var</code> <code>n = 6;</code>
<code>15</code>
<code>n.months().fromNow();</code>
<code>16</code>
<code>17</code>
<code>// Set to 8:30 AM on the 15th day of the month</code>
<code>18</code>
<code>Date.today().set({ day: 15, hour: 8, minute: 30 });</code>
<code>19</code>
<code>20</code>
<code>// Convert text into Date</code>
<code>21</code>
<code>Date.parse(</code><code>'today'</code><code>);</code>
<code>22</code>
<code>Date.parse(</code><code>'t + 5 d'</code><code>); </code><code>// today + 5 days</code>
<code>23</code>
<code>Date.parse(</code><code>'next thursday'</code><code>);</code>
<code>24</code>
<code>Date.parse(</code><code>'February 20th 1973'</code><code>);</code>
<code>25</code>
<code>Date.parse(</code><code>'Thu, 1 July 2004 22:30:00'</code><code>);</code>
Prettydate 是一個 jQuery 用來顯示一些使用者友好的日期格式的插件,例如 Posted 2 days ago byJohn Resig
<code>1</code>
<code>prettyDate(</code><code>"2008-01-28T20:24:17Z"</code><code>) </code><code>// => "2 hours ago"</code>
<code>2</code>
<code>prettyDate(</code><code>"2008-01-27T22:24:17Z"</code><code>) </code><code>// => "Yesterday"</code>
<code>3</code>
<code>prettyDate(</code><code>"2008-01-26T22:24:17Z"</code><code>) </code><code>// => "2 days ago"</code>
<code>4</code>
<code>prettyDate(</code><code>"2008-01-14T22:24:17Z"</code><code>) </code><code>// => "2 weeks ago"</code>
<code>5</code>
<code>prettyDate(</code><code>"2007-12-15T22:24:17Z"</code><code>) </code><code>// => undefined</code>
Moment.js 是一個簡單易用的輕量級JavaScript日期處理類庫,提供了日期格式化、日期解析等功能。它支援在浏覽器和NodeJS兩種環境中運作。此類庫能夠 将給定的任意日期轉換成多種不同的格式,具有強大的日期計算功能,同時也内置了能顯示多樣的日期形式的函數。另外,它也支援多種語言,你可以任意新增一種 新的語言包。
<code>//Return relative duration, eg 5 months ago</code>
<code>var</code> <code>halloween = moment([2011, 9, 31]);</code>
<code>console.log(halloween.fromNow());</code>
<code> </code>
<code>// Return current date plus 9</code>
<code>6</code>
<code>var</code> <code>now = moment().add(</code><code>'days'</code><code>, 9);</code>
<code>7</code>
<code>console.log(now.format(</code><code>'dddd, MMMM Do YYYY'</code><code>));</code>
XDate是一個對Javascirpt本地Date對象的輕度包裝,它提供對日期的解析、格式化以及其他操作的較強功能。它實作了本地Date對象的相同方法。
<code>d = </code><code>new</code> <code>XDate(2011, 7, 31); </code><code>// August 31</code>
<code>d.setMonth(8); </code><code>// September</code>
<code>d.toString(); </code><code>// October 1st!!! because there are only 30 says in September</code>
<code>// let's try this with preventOverflow...</code>
<code>d.setMonth(8, </code><code>true</code><code>); </code><code>// September</code>
<code>8</code>
<code>d.toString(); </code><code>// September 30!</code>
DP_DateExtensions庫繼承了JavaScript的Date對象,并添加了一些新特性和功能。
添加了富特性的timeFormat()以及dateFormat()方法,允許你對時間和日期值進行微操
通過add()和diff()方法輕松操作日期
通過新的compare()方法簡化日期的比較
添加轉換幾個W3C草稿中描述的ISO 8601标準日期格式。