Javascript,getDay()返回错误的数字

Javascript,getDay()返回错误的数字,javascript,date,Javascript,Date,首先,我知道javascript中的一周从0开始,周日=0,周六=6 然而,这里我缺少了一些简单的东西,但是下面的代码总是返回我想要的,但是少了1 这应该返回6,但返回5 var string = "2014-06-21"; var temp = new Date(string); alert(temp.getDay()); 有人知道哪里出了问题,怎么解决吗?谢谢。如果从字符串创建日期,请务必指定时间: var string = "2014-06-21 00:00:00"; var temp

首先,我知道javascript中的一周从0开始,周日=0,周六=6

然而,这里我缺少了一些简单的东西,但是下面的代码总是返回我想要的,但是少了1

这应该返回6,但返回5

var string = "2014-06-21";
var temp = new Date(string);
alert(temp.getDay());

有人知道哪里出了问题,怎么解决吗?谢谢。

如果从字符串创建日期,请务必指定时间:

var string = "2014-06-21 00:00:00";
var temp = new Date(string);
alert(temp.getDay());
您可能得到的是前一天,因为您没有指定时间(在日期字符串中)。在这种情况下,将使用您当前的时区(我的时区是GMT-03h)

另一个选项是使用以数字为参数的
date
构造函数创建日期:

new Date(year,month,day);
或者,在您的情况下:

var temp = new Date(2014, 6, 21);
alert(temp.getDay());

如果不在字符串中指定时间,它将默认为当前时区


“2014-06-21”是一个星期六。日期从0@kidwon周天数从0开始(正如OP已经提到的),但月天数从1开始