JSFiddle - React, Tailwind, and code Playground
HTML
<p id="display"></p>
JavaScript
function getTimer (end, selector) {
var then = new Date(end),
display = document.querySelector(selector),
aday = 24 * 60 * 60 * 1000,
ahour = 60 * 60 * 1000,
aminute = 60 * 1000,
asecond = 1000;
return function timer () {
var now = new Date(),
dt = then.getTime() - now.getTime(),
days = dt - (dt % aday),
hours = (dt % aday) - (days % ahour),
minutes = (dt % ahour) - (hours % aminute),
seconds = (dt % aminute) - (minutes % asecond);
display.innerHTML = 'still: ' +
(days/aday) + ' days, ' +
Math.floor(hours/ahour) + ' hours, ' +
Math.floor(minutes/aminute) + ' minutes and ' +
Math.floor(seconds/asecond) + ' seconds to go...';
if (dt > 0) {
setTimeout(timer, 100);
}
}
}
var t = getTimer('March, 19, 2014', 'p#display')();