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?
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.
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