You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
56 lines
2.0 KiB
56 lines
2.0 KiB
$(function(){
|
|
function timer(settings){
|
|
var config = {
|
|
endDate: '2019-05-19 09:00',
|
|
timeZone: 'Europe/Dublin',
|
|
hours: $('#hours'),
|
|
minutes: $('#minutes'),
|
|
seconds: $('#seconds'),
|
|
newSubMessage: 'and should be back online in a few minutes...'
|
|
};
|
|
function prependZero(number){
|
|
return number < 10 ? '0' + number : number;
|
|
}
|
|
$.extend(true, config, settings || {});
|
|
var currentTime = moment();
|
|
var endDate = moment.tz(config.endDate, config.timeZone);
|
|
var diffTime = endDate.valueOf() - currentTime.valueOf();
|
|
var duration = moment.duration(diffTime, 'milliseconds');
|
|
var days = duration.days();
|
|
var interval = 1000;
|
|
var subMessage = $('.sub-message');
|
|
var clock = $('.clock');
|
|
if(diffTime < 0){
|
|
endEvent(subMessage, config.newSubMessage, clock);
|
|
return;
|
|
}
|
|
if(days > 0){
|
|
$('#days').text(prependZero(days));
|
|
$('.days').css('display', 'inline-block');
|
|
}
|
|
var intervalID = setInterval(function(){
|
|
duration = moment.duration(duration - interval, 'milliseconds');
|
|
var hours = duration.hours(),
|
|
minutes = duration.minutes(),
|
|
seconds = duration.seconds();
|
|
days = duration.days();
|
|
if(hours <= 0 && minutes <= 0 && seconds <= 0 && days <= 0){
|
|
clearInterval(intervalID);
|
|
endEvent(subMessage, config.newSubMessage, clock);
|
|
window.location.reload();
|
|
}
|
|
if(days === 0){
|
|
$('.days').hide();
|
|
}
|
|
$('#days').text(prependZero(days));
|
|
config.hours.text(prependZero(hours));
|
|
config.minutes.text(prependZero(minutes));
|
|
config.seconds.text(prependZero(seconds));
|
|
}, interval);
|
|
}
|
|
function endEvent($el, newText, hideEl){
|
|
$el.text(newText);
|
|
hideEl.hide();
|
|
}
|
|
timer();
|
|
});
|