Skip to content Skip to sidebar Skip to footer

Parsing Iso8601-like Date In Javascript: New Date() Doesn't Work Across Browsers

How do I convert a date string coming from a database into a new Date() object? If I do the following: var x = new Date('2013-11-05 11:01:46:0'); alert(x); It works in Chrome, but

Solution 1:

The format of strings accepted by new Date(string) is implementation-dependent. If the browser correctly implements the ES5 specification, however, a strict subset of legal ISO 8601 strings should be accepted. Basically, you need to use UTC instead of local time, put a "T" instead of a space between the date and time, use a decimal point instead of a colon between integral and fractional seconds, and append a "Z" on the end of the whole thing:

2013-11-05T11:01:46.000Z

Perhaps you can get your database to output the dates in that format; otherwise, you should look into a third-party library, such as moment.js.

Post a Comment for "Parsing Iso8601-like Date In Javascript: New Date() Doesn't Work Across Browsers"