我认为这是一个简单的问题。
为什么我在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;
}
答案 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;
}