Javascript getDay()返回错误的结果

Javascript getDay()返回错误的结果,javascript,date,Javascript,Date,我的代码 我期望 days[d.getDay()]返回星期一,但返回星期天 我位于加利福尼亚太平洋时区 我遗漏了什么吗?传递给构造函数的字符串,“2014-09-01”不表示时区。在Chrome和Firefox上(基于我目前的测试),这似乎被解释为GMT日期。当您调用getDay()时,日期在您的本地时区中给出 因此,在我的情况下,由于我在加利福尼亚,2014-09-01的日期是格林尼治标准时间的午夜,实际上是PDT的8月31日下午5点。丹涛是对的,下面是如何修复丢失的时区 var d = ne

我的代码

我期望
days[d.getDay()]
返回星期一,但返回星期天

我位于加利福尼亚太平洋时区


我遗漏了什么吗?

传递给构造函数的字符串,
“2014-09-01”
不表示时区。在Chrome和Firefox上(基于我目前的测试),这似乎被解释为GMT日期。当您调用
getDay()
时,日期在您的本地时区中给出


因此,在我的情况下,由于我在加利福尼亚,2014-09-01的日期是格林尼治标准时间的午夜,实际上是PDT的8月31日下午5点。

丹涛是对的,下面是如何修复丢失的时区

var d = new Date("2014-09-01"); 
var days = ['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday'];
days[d.getDay()]


相关信息:

它会为我返回星期一,因为它应该->你的小提琴给了我星期天的FF,IE和ChromeHow在传入字符串中包含时区
2014-09-01
?@icn-var d=新日期(aYear,aMonth,aDay);d、 设置时间(d.getTime()+d.getTimezoneOffset()*60000);
var d = new Date("2014-09-01"); 
var days = ['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday'];
d.setTime( d.getTime() + d.getTimezoneOffset()*60000 );