ServerJS/DateTime

From MozillaWiki
Jump to: navigation, search

Date and Time

EcmaScript already supports a wide range of functions handling Date, see https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Date

but those kind of setters/getters are not very convinient when working with DateTimes. an easy way to e.g. add/substract timeranges, calculate time-diffs, etc. would be beneficial.

problems to solve

  • outputting / parsing datetime
  • date calculations / manipulating
  • json date extension (see crockford's json module)?

including TZ conversion? naive datetime's - not knowing about TZ - are easier to handle, though it seems JS has native aware datetime objects. utc & localtime.

Prior Art

Date.diff
Date.getTimespan
Date.equals 
// 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
  • dojo.date and dojo.date.locale (dojo.date.stamp is obsoleted by ES5)
    • dojo.date provides convenience methods
    • dojo.date.locale provides format and parse functions which are data driven off the Unicode CLDR project, fully localized client-side, downloading localizations only as needed. Support for hundreds of languages/variants.
>>> dojo.date.locale.format(myDate, {selector: “date”, formatLength: “long”}) // en-us
“June 28, 2008″
>>> dojo.date.locale.format(myDate, {selector: “date”, formatLength: “long”}) // zh-cn
“2008年6月28日”
    • dojox.date has experimental support for non-Gregorian calendars as well as Unix- and PHP-style formatting.
  • Matthew Eernisse implemented a Date-like class in JS to deal with the Olson table client-side, as well as code to parse and preprocess the Olson table.
  • ...