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);