为什么getDay返回错误的值? (JavaScript的)

时间:2009-05-07 13:51:17

标签: javascript datetime

我尝试使用Javascript中getDay()对象的Date函数获取一周的某一天。 理论上它工作正常,但有时输出会有延迟,因此如果函数返回“4”,则返回“1”。

E.g。

var date= new Date("2009","04","30");
alert(date.getDay()); // the function returns 6, should return 4

var date= new Date("2009","05","01");
alert(date.getDay()); // the function returns 1, should return 5

我真的不知道为什么会这样。这个例子来自IE8。 FF 3表现相似,但返回不同的值。第一个是7,而不是4.第二个就像在IE8中一样。

为什么会发生这种情况?

1 个答案:

答案 0 :(得分:19)

因为月份数是零,而不是基于月份。

new Date("2009","04","30")可能的第30个创建Date个对象,而不是4月30日。

(它基于零的原因可能是历史性的,即它的行为方式与不同系统中某些方法的行为相同......)