У меня были проблемы с @ Ghostoy's var distance = end - now;
Я заметил, что мой отсчет секунд часто останавливался и время от времени пропускал число. Когда я отобразил расстояние, я заметил, что миллисекунды немного смещаются назад и вперед.
Например, когда я смотрел обратный отсчет расстояния, это были мои результаты:
400996000
400995001
400993998
400993002
400991999
Может быть, это только мой компьютер, но если проблема возникает на моей машине, то это может случиться с кем-то еще. В результате я предлагаю изменить расстояние var к этому:
var distance = Math.round((end - now)/1000)*1000;
Это исправило это на моей машине.