JSFiddle - React, Tailwind, and code Playground

HTML

<html>
    <body>
        <div id="countdown"></div>
    </body>
</html>

JavaScript

$(document).ready(function () {
    var date = new Date(2012, 6, 21, 15, 30);
    var $display = $('#countdown');
    countdown($display, date);
    setInterval(function () { countdown($display, date); }, 1000);
});

var offset = get_time_zone_offset();

function countdown($display, collision) {
    var now = new Date();
    now.setHours(now.getHours() + (offset-5));
    //var seconds = Math.ceil((collision.getTime() - now.getTime()) * 0.001);
    //var minutes = Math.ceil(seconds/60);
    //var hours = Math.ceil(seconds/60/60 * 10)/10;
    //var days = Math.ceil((seconds/60/60/24) * 100)/100;
    var seconds = Math.floor((collision.getTime() - now.getTime()) * 0.001);
    var minutes = (Math.floor(seconds/60) % 60); //60 minutes in an hour
    var hours = (Math.floor(seconds/60/60 * 10)/10) % 24; //24 hours in a day
    var days = Math.floor((seconds/60/60/24));
    //var weeks = Math.ceil((days/7) * 100)/100;
    $display
        .html
        (
            '<p>' + 
            collision + ((offset != 5) ? ' with time zone offset of ' + (offset-5) + ' hours' : '') +
            '<br>seconds: ' + seconds +
            '<br>minutes: ' + minutes +
            '<br>hours: ' + hours +
            '<br>days: ' + days +
            //'<br>weeks: ' + weeks +
            '</p>'
        );
}

function get_time_zone_offset() {
     var current_date = new Date( );
     var gmt_offset = current_date.getTimezoneOffset( ) / 60;
     return gmt_offset;
}