2013-07-31 110 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前10小時)UTC-1000

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

Fiddle

+0

你打我吧。 +1。 – Renan