Ошибка функции getDate - PullRequest
       13

Ошибка функции getDate

0 голосов
/ 29 июня 2019

Почему моя функция 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 Ответ

1 голос
/ 29 июня 2019

Несколько причин.Функция setInterval не всегда запускается ровно через 1000 миллисекунд;В конце концов, нет часов идеально.Кроме того, между каждыми 1000 миллисекундами ожидания должно учитываться время выполнения программы, которое, вероятно, составляет пару миллисекунд.Что касается дублирования времени, если время ожидания немного меньше секунды или дата JavaScript имеет небольшую задержку после фактического времени работы компьютера, тогда могут возникать дубликаты.Суть в том, что в среднем он будет выполняться каждые 1000 миллисекунд плюс время выполнения фактической функции.

...