JSFiddle - React, Tailwind, and code Playground
by Dmitriy Mozgoviy
HTML
<div class="timer"></div>
JavaScript
function numberic(number, one, two, five) {
number = Math.abs(number);
number %= 100;
if (number >= 5 && number <= 20) {
return five;
}
number %= 10;
if (number == 1) {
return one;
}
if (number >= 2 && number <= 4) {
return two;
}
return five;
}
function formatDate(d){
d = Number(d);
var days=Math.floor(d / (3600*24));
d-=days*3600*24;
var h = Math.floor(d / 3600);
var m = Math.floor(d % 3600 / 60);
var s = Math.floor(d % 3600 % 60);
return ((days?days+numberic(days," день "," дня "," дней "):"")+(h > 0 ? h + ":" + (m < 10 ? "0" : "") : "") + m + ":" + (s < 10 ? "0" : "") + s);
}
var el=document.querySelector(".timer"), counter=0;
var endTimeStamp=Date.parse('2017-11-07T12:00:00.417Z'); // зона UTC
intervalID = setInterval(function () {
var left=Math.floor((endTimeStamp-Date.now())/1000);
if(counter!=left) {
counter=left;
el.innerHTML = "До апокалипсиса осталось: <b>"+formatDate(left)+"</b>";
}
//console.log(msLeft);
}, 100);