Heim > Web-Frontend > js-Tutorial > Hauptteil

Wie berechnet man die Zeitdifferenz zwischen zwei Datumsangaben in JavaScript genau?

Patricia Arquette
Freigeben: 2024-11-19 05:41:02
Original
576 Leute haben es durchsucht

How to Accurately Calculate the Time Difference Between Two Datetimes in JavaScript?

So ermitteln Sie den Zeitunterschied zwischen Datums- und Uhrzeitangaben

Das Bestimmen des Zeitunterschieds zwischen zwei Instanzen ist eine grundlegende Aufgabe in verschiedenen Programmierszenarien. In diesem Artikel wird anhand konkreter Beispiele erläutert, wie dieser Unterschied effektiv berechnet werden kann.

Berücksichtigen Sie die folgende Anforderung:

var now  = "04/09/2013 15:00:00";
var then = "04/09/2013 14:20:30";

//expected result:
"00:39:30"
Nach dem Login kopieren

Zunächst könnten Sie den folgenden Ansatz ausprobieren:

var now = moment("04/09/2013 15:00:00");
var then = moment("04/09/2013 14:20:30");

console.log(moment(moment.duration(now.diff(then))).format("hh:mm:ss"))
// outputs 10:39:30
Nach dem Login kopieren

Allerdings erscheint in diesem Beispiel der unerwartete Wert „10“ im Ergebnis. Dies liegt daran, dass moment.duration die Differenz zwischen jetzt und damals in ein Objekt umwandelt, das interne Werte wie Millisekunden enthält. Um diese Dauer in ein Zeitintervall umzuwandeln, können Sie Folgendes verwenden:

duration.get("hours") + ":" + duration.get("minutes") + ":" + duration.get("seconds")
Nach dem Login kopieren

Dies würde das gewünschte Ergebnis liefern: „00:39:30.“

Hinweis: Dieser Ansatz eignet sich nur für eine Dauer von weniger als 24 Stunden. Für längere Zeiträume benötigen Sie einen anderen Ansatz.

var now  = "04/09/2013 15:00:00";
var then = "02/09/2013 14:20:30";

var ms = moment(now,"DD/MM/YYYY HH:mm:ss").diff(moment(then,"DD/MM/YYYY HH:mm:ss"));
var d = moment.duration(ms);
var s = Math.floor(d.asHours()) + moment.utc(ms).format(":mm:ss");

// outputs: "48:39:30"
Nach dem Login kopieren

In diesem Fall berechnen wir den Zeitunterschied in Millisekunden, konvertieren ihn in ein Dauerobjekt d und formatieren ihn dann mit UTC-Zeit. Dadurch erhalten wir das richtige Ergebnis: „48:39:30“.

Alternativ können Sie das Moment-Duration-Format-Plugin verwenden, um den Formatierungsprozess zu vereinfachen.

Das obige ist der detaillierte Inhalt vonWie berechnet man die Zeitdifferenz zwischen zwei Datumsangaben in JavaScript genau?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage