ServerJS/DateTime: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
Line 30: Line 30:
  // Is today Friday?
  // Is today Friday?
  Date.today().is().friday();  // true|false
  Date.today().is().friday();  // true|false
* [http://api.dojotoolkit.org/jsdoc/1.3/dojo.date dojo.date] and [http://api.dojotoolkit.org/jsdoc/1.3/dojo.date.locale 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 [http://unicode.org/cldr 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日”


* ...
* ...

Revision as of 13:56, 22 June 2009

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日”
  • ...