Format a date in Javascript without converting to local timezone
date, firefox, google-chrome, javascript, timezone
Solution
The only solution I found is replacing `-` with `/`:
input = "2012-01-01 01:02:03";
var text = input.replace('-', '/');
var d = new Date(Date.parse(text));
hours = d.getHours();
In my case the input was `2013-05-22T16:45:00Z` so I replaced `T` and `Z` as well:
input = "2013-05-22T16:45:00Z";
var text = input.replace(/[TZ]/, '').replace('-', '/');
var d = new Date(Date.parse(text));
hours = d.getHours();
That way Javascript deals with it without knowing anything about timezone and stop acting smartly.
Problem
In an SQL database I have a list of times from different time zones but I neither have nor care for the corresponding time zone information: ``` 2012-01-01 01:02:03 2012-07-01 04:05:06 ``` For outputting I'd like to format them using Javascript. I tried: ``` var text = input.replace(' ','T'); // SQL -> ISO8601 var d = new Date(Date.parse(text)); hours = d.getHours(); ``` The problem is that in Chrome the the date is interpreted as being in UTC and converted to my local time zone, so I get: ``` 2 6 ``` while in Firefox it's interpreted as local time and I get what I want: ``` 1 4 ``` So is there a better solution with the Date object or am I stuck with splitting the string?