日期对象未在javascript中返回正确的日期值

时间:2012-09-01 10:03:00

标签: javascript date

  

可能重复:
  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

这是不正确的。

上述功能产生了数月和相应的日期。

3 个答案:

答案 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();

}

Demo

答案 1 :(得分:1)

我有罪魁祸首:

在Javascript月中被视为一个数组,从0开始。

所以九月应该是

var d = new Date(2012,8,1); and not 9

答案 2 :(得分:0)

我知道您可以使用长时间戳创建日期。

有时候你输入了错误的日期 - 你需要Utils.Date而不是SQL.Date - 也要检查这个!