Javascript getDay方法返回错误的数字

1 javascript

这是我在浏览器和node.js(类似)中测试的一个小的html/javascript.你可以看到最后一行不一样(我不知道,也许只在我的机器上).也许javascript代码通常有问题或者我做错了什么?

HTML

<p id="demo"></p>
<button onclick="myFunction()">Try it</button>
Run Code Online (Sandbox Code Playgroud)

脚本

function myFunction()
{
    var strng="";
    for (var i=25;i<32;i++){
        var d = new Date();
        d.setFullYear(2013, 11, i);
        var dt = new Date();
        dt.setDate(i);
        dt.setMonth(11);    
        dt.setYear(2013);
        strng += d.toLocaleDateString() + "  -  " + d.getDay() + " : " + dt.getDay() +" <br>";   
    }
    var x = document.getElementById("demo");
    x.innerHTML=strng;
}
Run Code Online (Sandbox Code Playgroud)

Igl*_*gle 6

如果您在月份之前设置第一天,您将获得最后一个日期12月1日.这是因为new Date()从今天起返回当前日期(28.Nov).由于11月只有30天,因此setDate(31)将日期设置为12月1日而不是31日

我首先提出错误的问题,但为了完整起见,我也会在这里保留这个答案:

要获得这一天你必须使用getDate()它将返回你想要的月份的那一天.

getDay()返回错误的数字,因为它用于获取星期几.(星期六像6)