• This repository has been archived on 31/Dec/2017
  • Stars
    star
    232
  • Rank 172,847 (Top 4 %)
  • Language
    JavaScript
  • Created over 13 years ago
  • Updated over 10 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Enhances Date.parse to support ES5 ISO-8601 strings in all environments.

Universal JavaScript Date.parse for ISO 8601

ECMAScript revision 5 adds native support for simplified ISO 8601 dates in the Date.parse method, but some browsers currently on the market (Safari 5-, IE 8-, Firefox 3.6-) do not support it. This is a simple shim for Date.parse that adds support for parsing ES5 simplified ISO 8601 strings to all browsers.

If you are attempting to parse date strings coming from non-ES5-conformant backends, please consider using the non-conformant edition.

Caveats

  1. This library strictly implements the simplified ISO 8601 date time string format specified in the ES5 Errata (§15.9.1.15) and will not parse ISO 8601 variants that would otherwise be considered valid under ISO 8601:2004(E).
  2. Creating a new date using the new Date(dateString) form will not be fixed by this shim.
  3. ES5 §15.9.4.2 states that parsing for Date Time String Format must occur prior to any implementation-specific date format parsing; therefore, this JavaScript implementation will always be used in lieu of native browser support for parsing the simplified ISO 8601 date format.

Unit tests

By default, the unit tests are configured only to test the JavaScript fallback portion of the script, which means your browser’s native Date.parse implementation will not be used. Add “?useNativeDateParse” to the URL to run unit tests that will use the browser’s native implementation (for browser compliance testing purposes).

Note: You must checkout using git clone --recursive in order for unit tests to function.

License

© 2011 Colin Snover. MIT Licensed.