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

Javascript Date Object - Different Value in JSFiddle

本文关键字:日期 对象 -JSFiddle Javascript      更新时间:2024-05-07

我认为这是一个简单的例子。

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

令人困惑的是,date.getMonth()是基于0的,意味着0是一月,所以它应该是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;
}