6

出于某种原因,当我将带有夏威夷时区的日期传递给 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) 

jsFiddle

4

1 回答 1

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

对于其他一切,您应该使用相对于 UTC 或 GMT 的数值。对于 HAST,这将是UTC-1000(UTC 前 10 小时):

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

小提琴

于 2013-07-31T17:50:38.783 回答