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"
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
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")
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"
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!