Ich möchte die Datumsdifferenz in Tagen, Stunden, Minuten, Sekunden, Millisekunden und Nanosekunden berechnen. Wie kann ich es tun?
javascript
datetime
Farhan Siddiqui
quelle
quelle
Antworten:
Angenommen, Sie haben zwei
Date
Objekte , können Sie sie einfach subtrahieren, um die Differenz in Millisekunden zu erhalten:Von dort aus können Sie mithilfe einfacher Arithmetik die anderen Werte ableiten.
quelle
Math.floor((date2 - date1) / (1000*60*60*24))
, stellen Sie den Nenner ein (für die Differenz in einer anderen Einheit den Basiswert in ms).Codebeispiel von hier .
quelle
Eine andere Lösung besteht darin, die Differenz in ein neues Datumsobjekt zu konvertieren und das Jahr (ab 1970), den Monat, den Tag usw. dieses Datums abzurufen.
Der Unterschied ist also wie "3 Jahre und 6 Monate und 4 Tage". Wenn Sie einen Unterschied in einem für Menschen lesbaren Stil machen möchten, kann dies Ihnen helfen.
quelle
Ausdrücke wie "Unterschied in Tagen" sind niemals so einfach, wie sie scheinen. Wenn Sie folgende Daten haben:
Der Zeitunterschied beträgt 2 Minuten. Sollte der "Unterschied in Tagen" 1 oder 0 sein? Ähnliche Probleme treten bei jedem Ausdruck des Unterschieds in Monaten, Jahren oder was auch immer auf, da Jahre, Monate und Tage unterschiedlich lang und zu unterschiedlichen Zeiten sind (z. B. ist der Tag, an dem die Sommerzeit beginnt, 1 Stunde kürzer als gewöhnlich und zwei Stunden kürzer als der Tag, an dem die Sommerzeit beginnt es endet).
Hier ist eine Funktion für eine Differenz in Tagen, die die Zeit ignoriert, dh für die oben genannten Daten gibt sie 1 zurück.
Dies kann prägnanter sein:
quelle
quelle
Verwenden Sie Moment.js für alle Ihre JavaScript-bezogenen Datums- und Zeitberechnungen
Die Antwort auf Ihre Frage lautet:
Vollständige Details finden Sie hier
quelle
quelle
Mit momentjs ist es einfach:
quelle
quelle
Entschuldigung, aber eine flache Millisekundenberechnung ist nicht zuverlässig. Vielen Dank für alle Antworten, aber einige der Funktionen, die ich ausprobiert habe, schlagen entweder am 1. Ein Datum nahe dem heutigen Datum 2. Ein Datum 1970 oder 3. Ein Datum in einem Schaltjahr fehl.
Ansatz, der für mich am besten funktioniert hat und alle Szenarien abdeckt, z. B. Schaltjahr, nahes Datum 1970, 29. Februar usw.
quelle
Wenn Sie moment.js verwenden, ist es ziemlich einfach, Datumsunterschiede zu finden.
quelle
quelle
Ich denke das sollte es tun.
quelle
Auf diese Weise können Sie Unterschiede zwischen Daten ohne Framework implementieren.
quelle
quelle
Dies sollte gut funktionieren, wenn Sie nur zeigen müssen, welche Zeit noch übrig ist, da JavaScript Frames für seine Zeit verwendet, erhalten Sie Ihre Endzeit - Die Zeit RN danach können wir sie durch 1000 teilen, da anscheinend 1000 Frames = 1 Sekunden sind. Danach können Sie die grundlegende Mathematik der Zeit verwenden, aber es gibt immer noch ein Problem mit diesem Code, da die Berechnung statisch ist und die unterschiedliche Tagessumme in einem Jahr (360/365/366) nicht kompensieren kann Wenn nach der Berechnung Null gesetzt werden soll, wenn die Zeit unter 0 liegt, hoffe ich, dass dies hilft, auch wenn es nicht genau das ist, was Sie fragen :)
quelle