调试getDate函数

时间:2019-06-29 09:55:47

标签: javascript gettime

为什么我的getDate函数有时会出错,而控制台中却出现了双重响应?

https://imgur.com/a/sxk0tbC

这是我的代码

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)

1 个答案:

答案 0 :(得分:1)

几个原因。 setInterval函数并非总是在1000毫秒后准确运行。毕竟,没有时钟是完美的。同样,在每1000毫秒的等待之间,必须考虑程序的执行时间,这可能是几毫秒。至于重复时间,如果等待时间少于一秒,或者JavaScript日期在实际计算机时间之后稍有延迟,则可能发生重复。最重要的是,平均而言,它将每1000毫秒执行一次,加上实际函数的执行时间。