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

时间:2016-04-11 18:31:37

标签: javascript date jsfiddle

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

为什么我在JSFiddle(新日期(1451606399999)中运行以下代码时会得到2015-11-04,但是当我在浏览器控制台中运行相同代码时,我得到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;
}

JSFiddle with code

1 个答案:

答案 0 :(得分:2)

令人困惑的是,date.getMonth()基于0,意味着0是1月,所以它应该是month = date.getMonth()+1。另外令人困惑的是date.getDay()实际上返回星期几(0是星期日,1是星期一......等)。您正在寻找的功能是date.getDate()

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;
}