Heim > Artikel > Web-Frontend > Wie kann ich mit moment.js den Zeitunterschied zwischen zwei Datumsangaben genau berechnen?
Die Bestimmung der Zeitdifferenz zwischen zwei bestimmten Datums- und Uhrzeitangaben ist in vielen Anwendungen eine häufige Anforderung. Dieser Artikel bietet eine umfassende Anleitung zum Erhalten eines präzisen Zeitintervalls mithilfe von moment.js, zur Behebung potenzieller Probleme und zum Anbieten alternativer Ansätze.
Gegeben zwei Datums- und Uhrzeitangaben, die als Zeichenfolgen dargestellt werden, besteht das Ziel darin Berechnen Sie den Zeitunterschied und zeigen Sie ihn im Format HH:MM:SS an. Zum Beispiel:
var now = "04/09/2013 15:00:00"; var then = "04/09/2013 14:20:30"; //expected result: "00:39:30"
Mit der Diff-Funktion von moment.js könnten Sie Folgendes versuchen:
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
Dieser Ansatz fügt jedoch fälschlicherweise hinzu 10 Stunden, obwohl die internen Werte der Dauer korrekt sind.
Um dieses Problem zu beheben, gibt es zwei Optionen:
Option 1 (für Dauer von weniger als 24 Stunden):
moment.utc(moment(now,"DD/MM/YYYY HH:mm:ss").diff(moment(then,"DD/MM/YYYY HH:mm:ss"))).format("HH:mm:ss")
Dieser Ansatz wandelt den Zeitunterschied in UTC um und beseitigt so etwaige Sommerzeitinkonsistenzen.
Option 2 (für Dauern von 24 Stunden oder mehr):
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");
Dieser Ansatz berechnet den Zeitunterschied in Millisekunden, wandelt ihn in ein Dauerobjekt um und extrahiert die Stunden, Minuten und Sekunden separat.
Für diejenigen, die eine praktische Lösung zum Formatieren von Dauerobjekten suchen, kann ein Drittanbieter-Plugin namens Moment-Duration-Format verwendet werden:
var s = d.format("hh:mm:ss");
Das obige ist der detaillierte Inhalt vonWie kann ich mit moment.js den Zeitunterschied zwischen zwei Datumsangaben genau berechnen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!