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