Skip to main content

Date Difference Calculator

Calculate the exact difference between two dates in years, months, days, weeks, hours and minutes.

Geprüft von · Zuletzt geprüft

So verwendest du den Datumsunterschied-Rechner

  1. Wähle ein Startdatum im ersten <input type="date">-Feld. Die Auswahl verwendet das Gebietsschema deines Browsers, sodass das visuelle Format das ist, was Chrome, Firefox oder Safari für deine Systemregion rendert, aber der zugrundeliegende Wert ist immer ISO 8601 YYYY-MM-DD.
  2. Wähle ein Enddatum im zweiten Feld. Die Reihenfolge spielt keine Rolle; das Werkzeug nimmt den absoluten Unterschied.
  3. Lies die Aufschlüsselung: Das Ergebnisfenster zeigt eine kalenderbewusste Aufteilung (Jahre, Monate, Tage) neben flachen Gesamtsummen (Gesamttage, Wochen, Stunden, Minuten, Sekunden).
  4. Kopiere den Wert, den du brauchst, mit dem Kopiersymbol neben jeder Metrik.

Sowohl die "Kalender"-Antwort ("1 Jahr, 2 Monate, 5 Tage") als auch die "Arithmetik"-Antwort ("430 Tage") werden absichtlich angezeigt - sie sind wirklich unterschiedliche Fragen, und Menschen greifen für beide auf dieses Werkzeug zurück.

Was dieses Werkzeug tatsächlich berechnet

Intern analysiert die Komponente jede Datumszeichenkette in ein Date-Objekt, das bei lokaler Mitternacht verankert ist, und führt dann zwei unabhängige Berechnungen durch. Für die flache Gesamtsumme subtrahiert sie die beiden Epochen-Millisekunden-Werte und dividiert durch 86.400.000 - einfach und genau, weil die JavaScript-Epoche bereits UTC-basiert ist und Schaltsekunden ignoriert. Für die Kalenderaufschlüsselung geht sie Jahr-Monat-Tag mit getFullYear(), getMonth() und getDate() durch und leiht sich Tage vom Vormonat, wie es die Long-Form-Subtraktion macht. Das ist der Teil, der Menschen überrascht: "1 Monat" vom 31. Januar bis zum 28. Februar ist nicht dieselbe Länge wie "1 Monat" vom 31. Juli bis zum 31. August. Der Gregorianische Kalender hat unregelmäßige Monatslängen (28, 29, 30 oder 31 Tage), und jedes ehrliche Differenzwerkzeug muss entscheiden, wie damit umgegangen wird.

Wann du danach greifst

  • Herausfinden, wie viele Kalendertage du noch auf einem Visum, Reisepass oder Mietvertrag hast, wo der Zähler buchstäbliche Tage zählt, nicht Arbeitstage.
  • Herausfinden, wie alt ein Kind genau in Wochen für ein Pädiatrie-Meilenstein-Diagramm ist, oder wie viele Tage ein Haustier gelebt hat.
  • Rekonstruktion eines Verjährungszeitfensters, wo du die Kalenderantwort plus eine rohe Tageszählung als Gegencheck brauchst.
  • Messen der Zeit zwischen zwei Commits, Releases oder Vorfällen für eine Post-mortem-Zeitleiste.
  • Tage auf einer Abonnementverlängerung oder einer anteiligen Erstattung zählen, wo Bruchteile von Monaten wichtig sind.
  • Beweise für einen Rechnungsstreit vorbereiten, der davon abhängt, ob eine Zahlung in 30 oder 31 Tagen eingegangen ist.

Randfälle, die man kennen sollte

  • Schaltjahre. 2024 hatte einen 29. Februar. Jemand, der am 29. Feb. 2000 geboren wurde, hatte bis 2024 genau sechs "echte" Geburtstage. Das Werkzeug zählt den 29. Feb. wie jeden anderen Tag; JavaScripts Date behandelt die Gregorianische Schaltregel (durch 4 teilbar, außer Jahrhunderte, die nicht durch 400 teilbar sind) nativ.
  • Sommerzeit-Übergänge. Lokale Mitternacht am Tag der Zeitumstellung ist entweder 23 oder 25 Stunden von der vorherigen Mitternacht entfernt. Das Werkzeug umgeht dies, indem es bei T00:00:00 lokal verankert und UTC-Epochen-Arithmetik für Gesamtsummen verwendet, sodass "Tage" auch an Sommerzeitgrenzen ganzzahlig bleibt.
  • Zeitzonendrift. Wenn das Startdatum von einem Kollegen in einer anderen Zone stammt und das Enddatum deins ist, kannst du um einen Tag daneben liegen. ISO-8601-Daten ohne Zeitzone sind unterspezifiziert - eine harte Lektion aus "Irrtümer, die Programmierer über Zeit glauben".
  • Der Julianisch-Gregorianische Wechsel (1582). JavaScripts proleptischer Gregorianischer Kalender tut so, als hätten Gregorianische Regeln bis zum Jahr 1 zurückgereicht. Historische Daten vor dem 15. Oktober 1582 stimmen nicht mit zeitgenössischen Aufzeichnungen überein.
  • Jahr 0 existiert nicht in der Anno-Domini-Konvention, aber es existiert in ISO 8601 und in Date. Zeitspannen, die 1 v. Chr. / 1 n. Chr. kreuzen, sind eine echte Fußangel.

Die ISO-8601-Spezifikation in einem Absatz

ISO 8601 ist der internationale Standard (erstmals 1988 veröffentlicht, aktuelle Ausgabe ISO 8601-1:2019), der YYYY-MM-DD und die erweiterte Form mit Uhrzeit YYYY-MM-DDTHH:mm:ss[.sss]Z definiert. Er ist so konzipiert, dass die String-Sortierreihenfolge der chronologischen Reihenfolge entspricht, weshalb er die vernünftige Standardeinstellung für Protokollzeilen und Dateinamen ist. RFC 3339 ist ein strengeres Profil von ISO 8601, das in Internetprotokollen verwendet wird - das ist es, was Date.prototype.toISOString() produziert. Die IANA-Zeitzonendatenbank (auch Olson-Datenbank genannt, nach Gründer Arthur David Olson) ist die maßgebliche Quelle für historische Sommerzeit-Übergänge, politische Grenzänderungen und Bruchstunden-Offsets wie Indiens UTC+5:30 und Irans UTC+3:30. Dein Browser liefert einen Snapshot dieser Datenbank über die Intl-API.

Datumsdifferenz in jq, Python, Excel oder einfach dieser Seite

Für einmalige Berechnungen ist diese Seite schneller als Python oder eine Tabellenkalkulation zu starten. Excels DATEDIF(Start, Ende, "d") gibt Gesamttage an, aber die "m"-Einheit rundet am Monatsende komisch (ein bekannter Fehler, den Microsoft dokumentiert, aber nie behoben hat). Pythons datetime-Subtraktion liefert ein timedelta, das .days und .total_seconds() bereitstellt, aber keine Kalenderaufschlüsselung - dafür bräuchtest du dateutil.relativedelta für eine "1 Jahr 2 Monate 5 Tage"-Ausgabe. Das date-CLI auf macOS/BSD verwendet andere Flags als GNU date auf Linux, was eine eigene Quelle von Schmerz ist. Dieses Werkzeug ist die richtige Wahl, wenn du beide Ansichten auf einmal willst, Excels Monatsarithmetik nicht vertraust und kein fünfzeiliges Skript für eine einminütige Frage schreiben möchtest.

Häufig gestellte Fragen

Warum sagt die Kalenderaufschlüsselung "1 Monat", aber die Gesamtsumme zeigt "30 Tage" und "31 Tage" für ähnliche Eingaben?

Weil Kalendermonate keine feste Länge haben. Das Werkzeug berechnet Jahr/Monat/Tag durch Ausleihen, wie man es in der Grundschule-Subtraktion gelernt hat, also erbt die "Monats"-Einheit die tatsächliche Länge des Monats, den man verlässt. Zwischen dem 1. März und dem 1. April sind es 31 Tage; zwischen dem 1. Februar und dem 1. März (kein Schaltjahr) sind es 28 Tage - beides ist "1 Monat". Die Zeile mit der Gesamtsumme ist genau dafür da, damit du die Kalenderantwort gegen eine eindeutige ganze Zahl gegenchecken kannst.

Wird der 29. Februar für Menschen, die an einem Schalttag geboren wurden, korrekt behandelt?

Ja. Die Komponente verwendet native JavaScript-Datumsarithmetik, die der Gregorianischen Schaltregel folgt (alle 4 Jahre, außer durch 100 teilbare Jahre, die nicht auch durch 400 teilbar sind). Eine am 29. Feb. 2000 geborene Person hat ein echtes Geburtstagsdatum am 29. Feb. 2004, 2008, 2012 und so weiter. In Nicht-Schaltjahren gibt das Werkzeug weiterhin eine korrekte Anzahl von seit der Geburt vergangenen Tagen aus; wie ein Mensch den fehlenden Tag "feiern" möchte (28. Feb. oder 1. März) ist eine soziale Konvention, kein Mathematikproblem.

Warum weichen meine Daten manchmal um einen Tag von denen eines Kollegen ab?

Die Datumsauswahl liefert eine ISO-Datumszeichenkette ohne Zeitzone, und dein Browser interpretiert sie bei lokaler Mitternacht. Bist du in Tokio und dein Kollege in Los Angeles, ist sein "2024-05-15 Mitternacht" für dich bereits "2024-05-15 Nachmittag". Die Lösung ist, eine Referenzzone zu vereinbaren (üblicherweise UTC) und vor dem Vergleich umzurechnen. Das ist Punkt vier auf der "Irrtümer, die Programmierer über Zeit glauben"- Liste und die häufigste Quelle von Datumsfehlern.

Werden irgendwelche Eingaben über das Netzwerk gesendet?

Nein. Die Komponente ist eine Preact-Insel, die in die statische Astro-Seite gerendert wird; sobald das JavaScript-Bundle ausgeliefert ist, finden alle Analysen und Subtraktionen im Tab statt. Es gibt keinen fetch-Aufruf an ein Backend, keinen Service-Worker-Eingriff und keine Analytik zu den Eingabewerten selbst - die einzige Telemetrie ist der Seitenaufruf, den Astro ohnehin protokolliert.

Kann ich es für historische Daten wie 1600 oder 800 n. Chr. verwenden?

Das geht, aber interpretiere die Antwort sorgfältig. JavaScript Date verwendet den proleptischen Gregorianischen Kalender, der so tut, als hätten die Gregorianischen Regeln rückwirkend vor dem 15. Oktober 1582 gegolten. Echte historische Dokumente vor diesem Datum verwenden den Julianischen Kalender (oder andere regionale Kalender für nicht-katholische Regionen, die so spät wie 1923 für Griechenland und 1918 für Russland wechselten). Für genealogische oder historische Forschung konvertiere zuerst in Julianische Tagesnummern, wenn du Primärquellen abgleichen musst.

Warum ist die Stunden-Gesamtsumme nicht immer ein genaues Vielfaches von 24?

Normalerweise ist es das, weil die Berechnung lokale Mitternacht an beiden Enden verwendet. Aber wenn du dich in einer Zeitzone mit Sommerzeit befindest und das Intervall die Uhrumstellung überquert, beträgt die verstrichene UTC-Millisekunden-Zahl für diesen Tag 23 oder 25 Stunden. Das Werkzeug rundet "Tage", damit du keine 30,04 siehst, und behält die genaue Stunden-Zeile für Sommerzeit-bewusste Berechnungen.

Wie unterscheidet sich das von einem "Countdown zu einem Datum"-Werkzeug?

Ein Countdown ist ein Live-Timer, der jede Sekunde zu einem zukünftigen Ziel tickt. Eine Datumsdifferenz ist eine statische Momentaufnahme zwischen zwei gewählten Punkten, vergangen oder zukünftig. Die Fälle überschneiden sich ("Wie lange bis zum Launch?"), aber Countdowns brauchen einen Uhr-Tick und Datumsdifferenzen nicht. Für einen Live- Countdown siehe unseren Countdown-Timer.

Kann ich das Ergebnis in Arbeitstagen statt Kalendertagen erhalten?

Nicht auf dieser Seite - dieses Werkzeug liefert nur Kalender-Zeitspannen. Verwende den Arbeitstage-Rechner für Mo-Fr-Zählungen mit optionalen Feiertagsausschlüssen. "Arbeitstage" ist regional: die meisten westlichen Länder verwenden Mo-Fr, einige Golfstaaten historisch So-Do.

Warum Wochen als separate Einheit anzeigen, statt nur Tage durch 7 zu teilen?

Genau das macht das Werkzeug - es gibt keine unabhängige "Wochen"- Berechnung. Es wird als eigene Zeile angezeigt, weil Menschen, die Sprints, Schwangerschaften oder Gestationsmeilensteine planen, nativ in Wochen denken, und manuelles Dividieren sich wie Reibung anfühlt. Der Bruchteil wird abgeschnitten; wenn du den Rest brauchst, lese das Feld "Tage" daneben.

Ändert eine Schaltsekunde das Ergebnis?

Nein. JavaScript-Zeit, Unix-Zeit und ISO 8601 ignorieren alle Schaltsekunden. Die letzte wurde am 31. Dezember 2016 eingefügt, und die IERS hat abgestimmt, bis 2035 keine weiteren hinzuzufügen. Zum Zählen von Kalendertagen ist das kein Problem; für die Gesamtanzahl verstrichener Sekunden zwischen zwei Zeitstempeln, die Jahrzehnte auseinanderliegen, ist die Antwort um etwa 27 Sekunden gegenüber UT1 verschoben - für jeden praktischen Zweck unsichtbar.

Mehr Date & Time