let overridetime = undefined; //overridetime = Date.now(); // Saturday at 23:00 UTC, the event starts const startTime = overridetime ?? Date.parse('Sat, 29 Oct 2022 23:00:00'); const timeToOffset = (hours) => { const speed1 = -10; const speed2 = -31; if (hours <= 0) return 0; if (hours >= 25) return 24*speed1 + speed2; if (hours <= 2) { return hours * speed1; } else if (hours > 2 && hours < 3) { return 2*speed1 + (hours-2) * speed2; } else { return 2*speed1 + speed2 + (hours-3) * speed1; } }; const update = () => { const now = Date.now(); const hoursPassed = (now-startTime) / 1000 / 3600; // test speed here const offset = timeToOffset(hoursPassed); const timeline = document.getElementById("timeline"); timeline.style.strokeDashoffset = 314 + offset; }; update(); setInterval(update, 50);