Skip to content

Instantly share code, notes, and snippets.

@onskyD
Created February 16, 2018 18:07
Show Gist options
  • Save onskyD/cc7547b8c536f58ea3e1d61ce6dadc2c to your computer and use it in GitHub Desktop.
Save onskyD/cc7547b8c536f58ea3e1d61ce6dadc2c to your computer and use it in GitHub Desktop.
My solution "count up" in jQuery.countdown
var elapse = true;
var element = $('.html_element');
var template = element.data('template');
var time = new Date(element.data('date') * 1000);
if (elapse){
var finishDate = new Date().getTime();
} else {
var finishDate = time.getFullYear() + '/' + (time.getMonth() + 1) + '/' + time.getDate();
}
element.countdown(finishDate, {
elapse: elapse
}).on('update.countdown', function(event) {
if (event.elapsed){
var offset = getDateOffset((event.timeStamp - time) / 1000);
var result = template;
result = result.replace('%D', offset.days);
result = result.replace('%H', offset.hours);
result = result.replace('%M', offset.minutes);
result = result.replace('%S', offset.seconds);
element.html(result);
} else {
element.html(event.strftime(template));
}
});
function getDateOffset(timeStamp){
var seconds = parseInt(timeStamp, 10);
var days = Math.floor(seconds / (3600 * 24));
seconds -= days * 3600 * 24;
var hours = Math.floor(seconds / 3600);
seconds -= hours * 3600;
var minutes = Math.floor(seconds / 60);
seconds -= minutes * 60;
return {
days: days,
hours: hours,
minutes: minutes,
seconds: seconds
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment