sbgg.jetzt/page/start/countdown.js

52 lines
1.1 KiB
JavaScript

"use strict";
let countdown_h1;
window.addEventListener("load", function(){
// STORE ELEMENTS //
countdown_h1 = document.getElementById("countdown-h1");
// PERIODIC REDRAW //
countdown_redraw();
setInterval(countdown_redraw, 3000);
});
/**
* SCHEDULED: Update countdown text.
*/
async function countdown_redraw(){
// CALCULATE TIME DIFF //
let now = new Date();
let goal = new Date(2024, (8 -1), 1, 8, 0);
let difference = Math.max(0, goal.getTime() - now.getTime());
// days
let days_raw = Math.floor(difference / (24 * 60 * 60 * 1000));
let days = days_raw;
// hours
let hours_raw = Math.floor((difference - (days_raw * 86400000)) / (3600000));
let hours = (hours_raw < 10 ? ("0" + hours_raw) : hours_raw);
// minutes
let minutes_raw = Math.floor((difference - (days_raw * 86400000) - (hours_raw * 3600000)) / (60000));
let minutes = (minutes_raw < 10 ? ("0" + minutes_raw) : minutes_raw);
// FORMAT TEXT //
// start with days
let formatted = days + "d";
// add hours
formatted += " " + hours + "h";
// add minutes
formatted += " " + minutes + "m";
// set text
countdown_h1.textContent = formatted;
}