Countdown timer
by Scott Currell
HTML
<div id="js-clockdiv">
Days: <span class="js-days"></span><br>
Hours: <span class="js-hours"></span><br>
Minutes: <span class="js-minutes"></span><br>
Seconds: <span class="js-seconds"></span>
</div>
JavaScript
function getTimeRemaining(endtime) {
var _total = Date.parse(endtime) - Date.parse(new Date());
// convert times to usable format
var _seconds = Math.floor((_total / 1000) % 60); // milliseconds to seconds
var _minutes = Math.floor((_total / 1000 / 60) % 60);
var _hours = Math.floor((_total / 1000 / 60 / 60) % 24);
var _days = Math.floor((_total / 1000 / 60 / 60 / 24) % 365);
return {
'total' : _total,
'days' : _days,
'hours' : _hours,
'minutes' : _minutes,
'seconds' : _seconds
};
}
function initializeClock(id, endtime) {
var clock = document.getElementById(id);
var daysSpan = clock.querySelector('.js-days');
var hoursSpan = clock.querySelector('.js-hours');
var minutesSpan = clock.querySelector('.js-minutes');
var secondsSpan = clock.querySelector('.js-seconds');
function updateClock() {
var _t = getTimeRemaining(endtime);
daysSpan.innerHTML = _t.days;
hoursSpan.innerHTML = ('0' + _t.hours).slice(-2);
minutesSpan.innerHTML = ('0' + _t.minutes).slice(-2);
secondsSpan.innerHTML = ('0' + _t.seconds).slice(-2);
if(_t.total <= 0) {
clearInterval(timeinterval);
}
}
updateClock();
var timeinterval = setInterval(updateClock,1000);
}
// var deadline = 'October 13 2017 16:00:00 GMT-0600';
var deadline = new Date(Date.parse(new Date()) + 14 * 24 * 60 * 60 * 1000);
initializeClock('js-clockdiv', deadline);