使用夏威夷时区的日期会使JavaScript日期无效

ino*_*nik 6 javascript date

出于某种原因,当我将带有夏威夷时区的日期传递给JavaScript时,Date()我得到"无效日期",但我没有其他任何时区.这有解决方法吗?

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) 
Run Code Online (Sandbox Code Playgroud)

的jsfiddle

Mik*_*sen 7

RFC 2822仅支持北美UT偏移(参见第32页).

"EST" / "EDT" /         ; Eastern:  - 5/ - 4
"CST" / "CDT" /         ; Central:  - 6/ - 5
"MST" / "MDT" /         ; Mountain: - 7/ - 6
"PST" / "PDT" /         ; Pacific:  - 8/ - 7
Run Code Online (Sandbox Code Playgroud)

对于其他所有内容,您应该使用相对于UTC或GMT的数值.对于HAST,这将是UTC-1000(UTC前10小时):

var HAST = 'Wed, 31 Jul 2013 07:21:16 UTC-1000';
Run Code Online (Sandbox Code Playgroud)

小提琴