datejs lib
// Get today's date Date.today(); // Add 5 days to today Date.today().add(5).days(); // Get Friday of this week Date.friday(); // Get March of this year Date.march(); // Is today Friday? Date.today().is().friday(); // true|false // What day is it? Date.today().getDayName(); [/js] Everything ok? A little out of breath? Soooo sorry. Now, some Date Assassin exercises. [js] // Get the first Monday of the year Date.january().first().monday() // Get the last Friday of the year Date.dec().final().fri() // Set a date to the 15th of the current month at 4:30 PM, // then add 90 days and make sure that date is a weekday, // else move to the next weekday. var d1 = Date.today() .set({ day: 15, hour: 16, minute: 30 }) .add({ days: 90 }) if (!d1.isWeekday()) { d1.next().monday(); } [/js] How about letting your users enter a few dates? Say into an <input> field or date picker? Included with the Datejs library is a powerful replacement for the native JavaScript Date parser. The following examples all start with a String value that we convert into a Date object. [js] // Lets start simple. "Today" Date.parse('today'); // How about tomorrow? Date.parse('tomorrow'); // July 8? Date.parse('July 8'); // With a year? Date.parse('July 8th, 2007'); // And time? Date.parse('July 8th, 2007, 10:30 PM'); // Get the date, move to Monday (if not already Monday), // then alert the date to the user in a different format. var d1 = Date.parse('8-Jul-2007'); if (!d1.is().monday()) { d1.last().monday(); } alert(d1.toString('dddd, MMMM d, yyyy')); [/js] The library also includes some Number fun. In order to execute functions directly on JavaScript Number objects, the number must be wrapped in parentheses. This is a requirement of JavaScript. If the number is declared first, the parentheses are not required. [js] // Get a date 3 days from now (3).days().fromNow(); // 6 month ago (6).months().ago(); // 12 weeks from now var n = 12; n.weeks().fromNow(); // Get a date 30 days after a user supplied date var d1 = Date.parse('07.15.2007'); var d2 = (30).days().after(d1); [/js]
详细文档:
http://code.google.com/p/datejs/wiki/APIDocumentation