Sekundengenauer Live-Countdown bis zu deinem Wunschdatum. Teile den Link mit Freunden, geht in den Vollbildmodus.
Der Timer tickt jede Sekunde live und zeigt Tage, Stunden, Minuten und Sekunden in großen Ziffern. Der Browser-Tab zeigt die verbleibende Zeit ebenfalls — perfekt zum Mitlaufen. Mit dem Vollbild-Knopf wird der Timer zum Bildschirmschoner. Konfiguration und Zieldatum werden im Browser gespeichert (localStorage) und über die URL geteilt — so behält jeder Empfänger genau denselben Countdown.
Klicke auf Link kopieren — die URL enthält Titel, Datum und Uhrzeit als Parameter. Jeder, der den Link öffnet, sieht den gleichen Countdown. Ideal für Einladungen, Save-the-Date-Mails oder Slack-Pings vor einem Release.
Ein digitaler Countdown subtrahiert kontinuierlich die aktuelle Systemzeit vom Zielzeitpunkt. Im Browser geschieht das über Date.now(), das die Anzahl der Millisekunden seit dem Unix-Epoch 1970-01-01 00:00:00 UTC zurückgibt — derselbe Bezugspunkt, den auch POSIX time_t verwendet. Der Timer auf dieser Seite ruft die Differenz jede Sekunde neu ab, anstatt einen Zähler hochzuzählen. Das ist wichtig, weil setInterval(fn, 1000) nicht garantiert exakt jede Sekunde feuert: wechselt der Nutzer den Tab, wird der Timer in modernen Browsern auf etwa einmal pro Sekunde gedrosselt, und bei Hintergrund-Tabs sogar noch stärker. Solange die Anzeige aber aus der absoluten Differenz berechnet wird, spielt das keine Rolle — selbst nach einem zehnminütigen Ruhezustand zeigt die Anzeige beim nächsten Tick wieder den korrekten Wert.
Heikler wird es bei Zeitzonen und Sommerzeit. Das Date-Input des Browsers liefert nur das Kalenderdatum, das Time-Input nur die Uhrzeit — beide werden in der lokalen IANA-Zeitzone (z. B. Europe/Berlin) interpretiert. Klickt jemand in New York auf deinen Share-Link, der das Ziel 2026-12-31 23:00 enthält, sieht er denselben Wandkalender-Termin, aber die UTC-Repräsentation ist sechs Stunden später. Der Countdown selbst stimmt für beide, weil intern in Millisekunden seit Epoch gerechnet wird. Beim Sommerzeit-Wechsel gemäß EU-Richtlinie 2000/84/EG (letzter Sonntag im März / Oktober) ist außerdem zu beachten: eine Stunde existiert doppelt bzw. gar nicht. Wer ein Ziel exakt auf die fehlende Stunde am letzten Sonntag im März legt, erhält in der Praxis den nächstmöglichen gültigen Zeitstempel.
Genauigkeit hat physikalische Grenzen. Schaltsekunden, eingefügt durch IERS-Bulletin C, werden vom Betriebssystem typischerweise als Sprung in der Uhrzeit abgefangen — der JavaScript-Timer bemerkt das nicht und springt einfach mit. Für reguläre Anwendungen (Geburtstag, Deadline, Projektstart) ist das vollständig egal. Wer einen Countdown auf den NTP-genauen Zeitstempel eines Raketenstarts haben möchte, sollte zusätzlich die Server-Zeit synchronisieren. Für alles andere reicht die System-Clock — moderne Endgeräte sind auf wenige hundert Millisekunden gegen UTC synchronisiert.
Die Restzeit ergibt sich einfach als delta = target_ms - now_ms. Aus dem absoluten Delta werden die Felder per Ganzzahl-Division gewonnen: days = floor(|delta| / 86 400 000), hours = floor(|delta| / 3 600 000) mod 24, minutes = floor(|delta| / 60 000) mod 60, seconds = floor(|delta| / 1000) mod 60. Der Tag hat 86 400 Sekunden, die Stunde 3 600, die Minute 60. Die Umrechnung in Tage ist exakt, solange keine Schalttag- oder Sommerzeit-Sprünge zwischen Jetzt und Ziel liegen — und selbst dann bleibt das Millisekunden-Delta korrekt, lediglich die menschliche Wahrnehmung von "einem Tag später" weicht ggf. um eine Stunde ab. Für ISO-8601-Dauer-Notation gilt: 1 Tag 2 Stunden 3 Minuten = P1DT2H3M.
Ein paar reale Zahlen, damit du die Größenordnungen einordnen kannst:
1893456000 entspricht 2030-01-01 00:00:00 UTC — ein beliebter Long-Term-Countdown-Anker.Wichtig zu wissen: ein 32-Bit-signed-time_t kann nur bis zum 19.01.2038 03:14:07 UTC zählen — das berühmte Y2038-Problem. Moderne Systeme nutzen 64-Bit-Zeitstempel, JavaScript intern Double-Precision-Floats mit ca. 9 Billiarden Millisekunden Reichweite; im Browser ist das also kein Thema. Bei sehr großen Deltas (> 285 000 Jahre) wird die Sekunden-Genauigkeit allerdings unscharf. Sommerzeit-Übergänge nach EU-Richtlinie 2000/84/EG sowie regionale Ausnahmen (z. B. Marokko, Iran, US-Bundesstaaten ohne DST) führen dazu, dass Wandkalender-Tage nicht immer 24 Stunden lang sind — ein Countdown auf "morgen 09:00 Uhr" kann am DST-Wochenende 23 oder 25 Stunden anzeigen. Auch Schaltsekunden (zuletzt 2016-12-31) verzerren Sub-Sekunden-Vergleiche minimal. Und schließlich: ISO-Kalenderwochen (ISO 8601, Woche 1 enthält den ersten Donnerstag des Jahres) unterscheiden sich von US-Kalenderwochen (Woche 1 = Woche mit dem 1. Januar) — relevant für "Countdown bis KW 26"-Szenarien.
Europe/Berlin). Wer den Share-Link in einer anderen Zeitzone öffnet, sieht denselben Wandkalender-Zeitpunkt — z. B. "31.12. 23:00" — aber zu seiner lokalen Uhr versetzt.