I'm working on an offline capabable Javascript site that targets mobile devices. One such mobile device is the IPhone.
I'm trying to parse a date from our REST API (a member of JSON object). I'm using
Date.parse("2010-03-15 10:30:00");
This works on Android devices, however on IPhone it just gives an invalid date.
How do I need to format my date string so it can be parsed by the IPhone?
Definition and Usage parse() parses a date string and returns the time difference since January 1, 1970. parse() returns the time difference in milliseconds.
JavaScript stores dates as number of milliseconds since January 01, 1970. Zero time is January 01, 1970 00:00:00 UTC. One day (24 hours) is 86 400 000 milliseconds.
new Date() exhibits legacy undesirable, inconsistent behavior with two-digit year values; specifically, when a new Date() call is given a two-digit year value, that year value does not get treated as a literal year and used as-is but instead gets interpreted as a relative offset — in some cases as an offset from the ...
Not all browsers support the same date formats. The best approach is to split the string on the separator characters (-
,
and :
) instead, and pass each of the resulting array items to the Date
constructor:
var arr = "2010-03-15 10:30:00".split(/[- :]/), date = new Date(arr[0], arr[1]-1, arr[2], arr[3], arr[4], arr[5]); console.log(date); //-> Mon Mar 15 2010 10:30:00 GMT+0000 (GMT Standard Time)
This will work the same in all browsers.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With