Javascript日期对象-JSFIDLE中的不同值

Javascript日期对象-JSFIDLE中的不同值,javascript,date,jsfiddle,Javascript,Date,Jsfiddle,我认为这是一个简单的问题 为什么在JSFIDLE中运行以下代码时会得到2015-11-04(新日期(145160639999)),但在浏览器控制台中运行相同代码时会得到2015-12-31(这是我期望的值) 我会想,在任何一种情况下,时区都会与客户端上运行的代码相同,为什么时区会使日期相差一个月以上呢 function test() { var date = new Date(1451606399999); var year = date.getFullYear(); v

我认为这是一个简单的问题

为什么在JSFIDLE中运行以下代码时会得到2015-11-04(新日期(145160639999)),但在浏览器控制台中运行相同代码时会得到2015-12-31(这是我期望的值)

我会想,在任何一种情况下,时区都会与客户端上运行的代码相同,为什么时区会使日期相差一个月以上呢

function test()
{
    var date = new Date(1451606399999);
    var year = date.getFullYear();
    var month = date.getMonth();
    var day = date.getDay();
    var hours = date.getHours();
    var minutes = "0" + date.getMinutes();
    var seconds = "0" + date.getSeconds();

    var formattedTime = year + '-' + month + '-' + day + ' ' + hours + ':' + minutes.substr(-2) + ':' + seconds.substr(-2);

    document.getElementById("myDiv").innerHTML = formattedTime;
}

令人困惑的是,
date.getMonth()
基于0,意味着0是一月,所以它应该是
month=date.getMonth()+1
。同样令人困惑的是
date.getDay()
实际上返回一周中的某一天(0是星期天,1是星期一…等等)。您要找的函数是
date.getDate()


令人困惑的是,
date.getMonth()
是基于0的,意思是0是一月,所以它应该是
month=date.getMonth()+1
。同样令人困惑的是
date.getDay()
实际上返回一周中的某一天(0是星期天,1是星期一…等等)。您要找的函数是
date.getDate()


Month是零基的,11=decemberMonth是零基的,11=decemberMonth是有意义的。我应该花更多的时间来检查我猜的定义。感谢有意义的回答。我应该花更多的时间来检查我猜的定义。谢谢你的回答
function test(){
    var date = new Date(1451606399999);
    var year = date.getFullYear();
    var month = date.getMonth()+1;
    var day = date.getDate();
    var hours = date.getHours();
    var minutes = "0" + date.getMinutes();
    var seconds = "0" + date.getSeconds();

    var formattedTime = year + '-' + month + '-' + day + ' ' + hours + ':' + minutes.substr(-2) + ':' + seconds.substr(-2);
    console.log(date);
    document.getElementById("myDiv").innerHTML = formattedTime;
}