为什么我的getDate函数有时会出错,而控制台中却出现了双重响应?
这是我的代码
function getDate() {
var newDate = new Date();
var year = newDate.getFullYear();
var month = newDate.getMonth()+1;
var day = newDate.getDate();
var hours = newDate.getHours();
var minutes = newDate.getMinutes();
var seconds = newDate.getSeconds();
if (month < 10) {
month = "0"+month;
}
if (day < 10) {
day = "0"+day;
}
if (hours < 10) {
hours = "0"+hours;
}
if (minutes < 10) {
minutes = "0"+minutes;
}
if (seconds < 10) {
seconds = "0"+seconds;
}
return year+"-"+month+"-"+day+" "+hours+":"+minutes+":"+seconds;
}
setInterval(function() {
console.log(getDate())
},1000)
答案 0 :(得分:1)
几个原因。 setInterval
函数并非总是在1000毫秒后准确运行。毕竟,没有时钟是完美的。同样,在每1000毫秒的等待之间,必须考虑程序的执行时间,这可能是几毫秒。至于重复时间,如果等待时间少于一秒,或者JavaScript日期在实际计算机时间之后稍有延迟,则可能发生重复。最重要的是,平均而言,它将每1000毫秒执行一次,加上实际函数的执行时间。