let offset = 0;
function update_timer(timer){
- var start = parseInt(timer.dataset.start);
- var stop = parseInt(timer.dataset.stop);
- var value = parseInt(timer.dataset.value);
- var now = Math.floor(Date.now() / 1000) + offset;
+ const start = parseInt(timer.dataset.start);
+ const stop = parseInt(timer.dataset.stop);
+ const value = parseInt(timer.dataset.value);
+ const now = Math.floor(Date.now() / 1000) + offset;
- var left = stop - now;
- var total = stop - start;
- if(left < 0)
- left = 0;
+ const left = Math.max(stop - now, 0);
+ const total = stop - start;
- if(value) {
- value = Math.max(value * 3 / 10, value * left / total);
- timer.innerHTML = Math.floor(value);
- } else {
- var hours = Math.floor(left / 60 / 60);
+ if(value)
+ timer.innerHTML = Math.floor(Math.max(value * 3 / 10, value * left / total));
+ else {
+ let hours = Math.floor(left / 60 / 60);
hours = hours < 10 ? '0' + hours : hours;
- var minutes = Math.floor(left / 60) % 60;
+ let minutes = Math.floor(left / 60) % 60;
minutes = minutes < 10 ? '0' + minutes : minutes;
- var seconds = left % 60;
+ let seconds = left % 60;
seconds = seconds < 10 ? '0' + seconds : seconds;
timer.innerHTML = hours + ':' + minutes + ':' + seconds;
}
setInterval(() => update_timer(item), 1000);
});
if($('.timer').length > 0) {
- let xhr = new XMLHttpRequest();
+ const xhr = new XMLHttpRequest();
xhr.open('HEAD', '/');
xhr.onload = () => {
- let srvtime = Date.parse(xhr.getResponseHeader('Date'));
+ const srvtime = Date.parse(xhr.getResponseHeader('Date'));
offset = Math.ceil((srvtime - Date.now()) / 1000);
console.log("Offset from server: " + offset);
};