可能重复:
Creating date with numbers (new Date(2012, 03, …) gives wrong month (+1)
我有这个功能:
function myFunction(){
var d = new Date(2012,9,1);
var x = document.getElementById("demo");//some element demo
x.innerHTML=d.getDay();
}
我想在任何一个月的1日结束工作日。代码在上面(一个例子)。 难道这不应该以6的价值返回星期六吗?它没有给出正确的价值。它在这种情况下给出1。看起来很简单,但我错过了一些东西。 我是否误解了这个等式?
请告诉。
一些编辑:虽然它有点不同但仍然在同一条线上。
function myFunction()
{
for(i=0;i<12;i++){
var d = new Date(2012,i,0);
k=i+1;
var x = document.getElementById(""+k);
x.innerHTML=d.getDate()+" "+i;
}
}
此函数在no中写入特定id 12。我得到以下输出:
31 0
31 1
29 2
31 3
30 4
31 5
30 6
31 7
31 8
30 9
31 10
30 11
这是不正确的。
上述功能产生了数月和相应的日期。
答案 0 :(得分:1)
您忘记了在创建新的Date
对象时,month
参数取0-11之间的数字。 9月是8.尝试将其更改为8,您的一天将返回6
,即星期六。
您的更正代码:
function myFunction(){
var d = new Date(2012,8,1);
var x = document.getElementById("demo");//some element demo
x.innerHTML=d.getDay();
}
答案 1 :(得分:1)
我有罪魁祸首:
在Javascript月中被视为一个数组,从0开始。
所以九月应该是
var d = new Date(2012,8,1); and not 9
答案 2 :(得分:0)
我知道您可以使用长时间戳创建日期。
有时候你输入了错误的日期 - 你需要Utils.Date而不是SQL.Date - 也要检查这个!