2013-07-31 5 views
6

По какой-то причине, когда я передаю дату с часовым поясом Гавайев в JavaScript Date(), я получаю «недопустимую дату», но в любом другом часовом поясе я этого не делаю. Есть ли обходной путь для этого?Дата с часовым поясом Гавайских островов делает недействительным дату JavaScript

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

ответ

7

RFC 2822 поддерживает только североамериканские UT Смещения (см Page 32).

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

Для всего остального вы должны использовать числовое значение относительно UTC или GMT. Для HAST, это было бы UTC-1000 (10 часов до UTC):

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

Fiddle

+0

Вы избили меня к нему. +1. – Renan