Это можно сделать на JavaScript без плагинов.
Вам нужно получить текущую дату, вплоть до знаменателя, который на единицу меньше отображаемого вами. В вашем примере это будет означать, что вам нужно все сократить до миллисекунд.
var currentTime = new Date(n.getFullYear(), n.getMonth(), n.getDate(), n.getHours(), n.getMinutes(), n.getSeconds(), n.getMilliseconds());
Затем вы найдете разницу между текущим и желаемым временем. Это дается вам в миллисекундах.
var diff = endtime - currentTime;
Поскольку это возвращается в миллисекундах, вам нужно преобразовать их в секунды, минуты, часы, дни и т. Д. ... Это означает, сколько миллисекунд приходится на каждый знаменатель. Затем вы можете использовать мод и делить, чтобы вернуть число, необходимое для каждого подразделения. Смотри ниже.
var miliseconds = 1;
var seconds = miliseconds * 1000;
var minutes = seconds * 60;
var hours = minutes * 60;
var days = hours * 24;
var years = days * 365;
//Getting the date time in terms of units
//Floored so that they go together (to get just year/days/hours etc.. by themselves you need to use Math.round(diff/desired unit);
var numYears = Math.floor(diff / years);
var numDays = Math.floor((diff % years) / days);
var numHours = Math.floor((diff % days) / hours);
var numMinutes = Math.floor((diff % hours) / minutes);
var numSeconds = Math.round((diff % minutes) / seconds);
Если у вас есть знаменатели, которые вы хотите отобразить, вы можете вернуть их на html-страницу разными способами. Например:
document.getElementById("tyears").innerHTML = numYears;
Это подводит итог вашего метода. Однако, чтобы запустить его через заданный интервал (именно поэтому вы обновляете отображение HTML в функции JavaScript), вам нужно вызвать следующую функцию, указав имя вашей функции и указав интервал в миллисекундах.
//Call the count down timer function every second (measured in miliseconds)
setInterval(countDown(endtime), 1000);