2013-07-31 16 views
6

Aus irgendeinem Grund, wenn ich ein Datum mit einer Hawaii-Zeitzone an JavaScript Date() übergeben bekomme ich "ungültiges Datum", aber jede andere Zeitzone, die ich nicht. Gibt es einen Workaround dafür?Datum mit Hawaii Zeitzone macht ungültig JavaScript Datum

var HAST = 'Wed, 31 Jul 2013 07:21:16 HAST'; 
var hawaiiTime = new Date(HAST); 
console.log("Hawaii time: "+hawaiiTime); 
// Hawaii time: Invalid Date 

var PST = 'Wed, 31 Jul 2013 07:21:16 PST'; 
var pacificTime = new Date(PST); 
console.log("Pacific time: "+pacificTime); 
// Pacific time: Wed Jul 31 2013 09:21:16 GMT-0600 (MDT) 

jsFiddle

Antwort

7

RFC 2822 unterstützt nur UT Versätze in Nordamerika (siehe Page 32).

"EST"/"EDT"/  ; Eastern: - 5/ - 4 
"CST"/"CDT"/  ; Central: - 6/ - 5 
"MST"/"MDT"/  ; Mountain: - 7/ - 6 
"PST"/"PDT"/  ; Pacific: - 8/ - 7 

Für alles andere sollten Sie den numerischen Wert relativ zu UTC oder GMT verwenden. Für HAT, würde dies UTC-1000 (10 Stunden vor UTC) sein:

var HAST = 'Wed, 31 Jul 2013 07:21:16 UTC-1000'; 

Fiddle

+0

Sie schlagen mich darauf. +1. – Renan