Ich arbeite an einem kleinen Skript mit momentjs, das mir zeigt, wie viele Stunden und Minuten (getrennt) ich bis zu einer bestimmten Stunde habe. Aber aus irgendeinem Grund ist das Ergebnis falsch.moment.js diff zeigt falsches Ergebnis
Das ist mein Code so weit:
var TimeA = moment('08:00:00', 'HH:mm:ss');
var TimeB = moment('16:00:00', 'HH:mm:ss');
var DiffAB = moment(TimeA.diff(TimeB)).format('HH:mm:ss');
var DiffHours = moment(DiffAB, 'HH:mm:ss').format('H');
var DiffMinutes = moment(DiffAB, 'HH:mm:ss').format('mm');
console.log('TimeA: ' + moment(TimeA).format('HH:mm:ss'));
console.log('TimeB: ' + moment(TimeB).format('HH:mm:ss'));
console.log('Difference A-B: ' + DiffAB);
console.log('Diff Hours: ' + DiffHours);
console.log('Diff Minutes: ' + DiffMinutes);
Und das ist der Ausgang:
TimeA: 08:00:00
TimeB: 16:00:00
Difference A-B: 17:00:00
Diff Hours: 17
Diff Minutes: 00
Der Unterschied von A - B
8
sein sollte, aber seine 17
zeigt.
'TimeA.diff (timeb)' gibt die Anzahl von Millisekunden. 'moment (Number)' interpretiert das Argument als Anzahl von Millisekunden seit der Unix-Epoche. Sie sehen das wahrscheinlich in Ihrer lokalen Zeitzone. –
Moment kann manchmal verwirrend sein. Sie verwenden nicht diff() korrekt und wie erwähnt, ohne Parameter gibt Unix Timestamp zurück. Bitte schaue hier -> [moment docs] (https://momentjs.com/docs/#/displaying/difference/) – twg