0

可能重复:
用数字创建日期(new Date(2012, 03, ...) 给出错误的月份 (+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;


  }

}

此函数将特定的 ids 总共 12 写入 no。我得到以下输出:

31 0

31 1

29 2

31 3

30 4

31 5

30 6

31 7

31 8

30 9

31 10

30 11

这是不正确的。

上面的函数生成月份和相应的日期。

4

3 回答 3

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

}

演示

于 2012-09-01T10:06:59.360 回答
1

我找到了罪魁祸首:

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

所以九月应该是

var d = new Date(2012,8,1); and not 9
于 2012-09-01T10:08:21.470 回答
0

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

有时会发生您导入错误的日期 - 您需要 Utils.Date 而不是 SQL.Date - 也检查一下!

于 2012-09-01T10:06:36.637 回答