You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

92 lines
2.8 KiB
JavaScript

1 week ago
(function ($) {
"use strict";
$.fn.extend({
countdown100: function(options) {
var defaults = {
timeZone: "",
endtimeYear: 0,
endtimeMonth: 0,
endtimeDate: 0,
endtimeHours: 0,
endtimeMinutes: 0,
endtimeSeconds: 0,
}
var options = $.extend(defaults, options);
return this.each(function() {
var obj = $(this);
var timeNow = new Date();
var tZ = options.timeZone; console.log(tZ);
var endYear = options.endtimeYear;
var endMonth = options.endtimeMonth;
var endDate = options.endtimeDate;
var endHours = options.endtimeHours;
var endMinutes = options.endtimeMinutes;
var endSeconds = options.endtimeSeconds;
if(tZ == "") {
var deadline = new Date(endYear, endMonth - 1, endDate, endHours, endMinutes, endSeconds);
}
else {
var deadline = moment.tz([endYear, endMonth - 1, endDate, endHours, endMinutes, endSeconds], tZ).format();
}
if(Date.parse(deadline) < Date.parse(timeNow)) {
var deadline = new Date(Date.parse(new Date()) + endDate * 24 * 60 * 60 * 1000 + endHours * 60 * 60 * 1000);
}
initializeClock(deadline);
function getTimeRemaining(endtime) {
var t = Date.parse(endtime) - Date.parse(new Date());
var seconds = Math.floor((t / 1000) % 60);
var minutes = Math.floor((t / 1000 / 60) % 60);
var hours = Math.floor((t / (1000 * 60 * 60)) % 24);
var days = Math.floor(t / (1000 * 60 * 60 * 24));
return {
'total': t,
'days': days,
'hours': hours,
'minutes': minutes,
'seconds': seconds
};
}
function initializeClock(endtime) {
var daysSpan = $(obj).find('.days');
var hoursSpan = $(obj).find('.hours');
var minutesSpan = $(obj).find('.minutes');
var secondsSpan = $(obj).find('.seconds');
function updateClock() {
var t = getTimeRemaining(endtime);
daysSpan.html(t.days);
hoursSpan.html(('0' + t.hours).slice(-2));
minutesSpan.html(('0' + t.minutes).slice(-2));
secondsSpan.html(('0' + t.seconds).slice(-2))
if (t.total <= 0) {
clearInterval(timeinterval);
}
}
updateClock();
var timeinterval = setInterval(updateClock, 1000);
}
});
}
});
})(jQuery);