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 @@ + + +
+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:
+ ++ ++ + +