diff -r 000000000000 -r 40c8f766c9b8 src/cm/media/js/lib/flexible-js-formatting/dates/date-parsing-demo.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/cm/media/js/lib/flexible-js-formatting/dates/date-parsing-demo.html Mon Nov 23 15:14:29 2009 +0100 @@ -0,0 +1,81 @@ + + + + Javascript Date Parsing Demo + + + + + +

Javascript Date Parsing Demo

+ +

This page demonstrates the Javascript date-parsing functionality I've +created. First, some samples. The following code:

+ +
+var d = Date.parseDate("2005-10-05 12:13 am", "Y-m-d g:i a");
+document.write(d + "\n");
+var d = Date.parseDate("9/5/05", "n/j/y");
+document.write(d + "\n");
+
+ +

generates this output:

+ +
+
+
+ +

This and all output on this page is generated on-the-fly by Javascript, so you can view the page source and see the +code that creates the output you're seeing.

+ +

It is possible to use the date-parsing functionality, together with the +date-formatting functionality, for round-trip formatting and parsing back again +without losing information. All you need to do is use the same format +specifier for both operations. In general, I would suggest using one of the +ISO 8601 patterns, such as Date.patterns.ISO8601LongPattern to +ensure no precision is lost along the way. Obviously you need to use a format +specifier that doesn't discard information during the formatting step; anything +discarded is unrecoverable during the parsing step.

+ +

To demonstrate this functionality, here is a table showing the round-trip +for all the predefined format patterns.

+ + + +

As you can see, some of the formats discard some information, so it's not +always possible to reconstitute the original input. Notice particularly how the date is assumed to be "today" in cases where only the time is preserved +in the formatting string.

+ +

Finally, a word about the internals. As you may have seen me do before, +I've written code that writes code. Here is the regular expression generated +for one of the parsing formats, followed by the automatically generated code +that uses the regular expression to implement the parser:

+ +

+ +
+
+
+ + +