2013-07-31 4 views
6

Z jakiegoś powodu po przekazaniu daty ze strefą czasową na Hawajach do kodu JavaScript Date() otrzymuję "nieprawidłową datę", ale w innej strefie czasowej nie. Czy istnieje obejście tego problemu?Data ze strefą czasową w języku hawajskim zawiera niepoprawną datę JavaScriptu

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

Odpowiedz

7

RFC 2822 obsługuje tylko Ameryki Północnej UT offsetowe (patrz Page 32).

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

W pozostałych przypadkach należy użyć wartości liczbowej w odniesieniu do UTC lub GMT. Dla masz, to byłoby UTC-1000 (10 godzin przed UTC):

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

Fiddle

+0

Pobiłeś mnie do niego. +1. – Renan