549 Stimmen

Erhalte den Stundenunterschied zwischen zwei Daten in Moment Js

Ich kann den Unterschied zwischen zwei Daten mithilfe von MomentJs wie folgt erhalten:

moment(end.diff(startTime)).format("m[m] s[s]")

Jedoch möchte ich auch die Stunde anzeigen, wenn dies zutrifft (nur wenn >= 60 Minuten vergangen sind).

Wenn ich jedoch versuche, die Stundenanzahl mithilfe des folgenden Codes abzurufen:

var duration = moment.duration(end.diff(startTime));
var hours = duration.hours();

wird die aktuelle Stunde zurückgegeben und nicht die Anzahl der Stunden zwischen den beiden Daten.

Wie kann ich den Unterschied in Stunden zwischen zwei Momenten erhalten?

835voto

GregL Punkte 34663

Sie waren nah dran. Sie müssen nur die Methode duration.asHours() verwenden (siehe die Dokumentation).

var duration = moment.duration(end.diff(startTime));
var hours = duration.asHours();

327voto

selftaught91 Punkte 6117

Der folgende Code-Block zeigt, wie man mit MomentJS den Unterschied in der Anzahl der Tage zwischen zwei Daten berechnet.

var now = moment(new Date()); // heutiges Datum
var end = moment("2015-12-1"); // ein anderes Datum
var duration = moment.duration(now.diff(end));
var days = duration.asDays();
console.log(days)

223voto

Sebastián Lara Punkte 5057

Oder Sie können einfach folgendes tun:

var a = moment('2016-06-06T21:03:55');//jetzt
var b = moment('2016-05-06T20:03:55');

console.log(a.diff(b, 'minutes')) // 44700
console.log(a.diff(b, 'hours')) // 745
console.log(a.diff(b, 'days')) // 31
console.log(a.diff(b, 'weeks')) // 4

Dokumente: hier

48voto

Dryden Williams Punkte 1047

Es gibt eine großartige moment-Methode namens fromNow(), die die Zeit von einem bestimmten Zeitpunkt in einer schönen menschenlesbaren Form zurückgibt, so wie hier:

moment('2019-04-30T07:30:53.000Z').fromNow() // vor einer Stunde || vor einem Tag || vor 10 Tagen

Oder wenn Sie das zwischen zwei bestimmten Daten verwenden möchten, können Sie folgendes tun:

var a = moment([2007, 0, 28]);
var b = moment([2007, 0, 29]);
a.from(b); // "vor einem Tag"

Entnommen aus der Dokumentation:

29voto

JSON C11 Punkte 9927

Alles was Sie tun müssen, ist hours als zweiten Parameter an die moments diff Funktion zu übergeben.

var a = moment([21,30,00], "HH:mm:ss")
var b = moment([09,30,00], "HH:mm:ss")
a.diff(b, 'hours') // 12

Dokumentation: https://momentjs.com/docs/#/displaying/difference/

Beispiel:

const dateFormat = "YYYY-MM-DD HH:mm:ss";
// Holen Sie sich Ihre Start- und Enddaten/-zeiten
const geradeJetzt = moment().format(dateFormat);
const dieseZeitGestern = moment().subtract(1, 'days').format(dateFormat);
// Geben Sie als zweiten Parameter in die diff Funktion Stunden ein
const differenzInStunden = moment(geradeJetzt).diff(dieseZeitGestern, 'hours');

console.log(`${differenzInStunden} Stunden sind seit dieser Zeit gestern vergangen`);

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X