私はmomentjsを使用して小さなスクリプトに取り組んでいます。これは、特定の時間までの時間と分(個別)を示します。しかし、何らかの理由で結果は間違っています。
これまでの私のコードは次のとおりです。
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);
そしてそれは出力です:
TimeA: 08:00:00
TimeB: 16:00:00
Difference A-B: 17:00:00
Diff Hours: 17
Diff Minutes: 00
の違いはあるA - B
はずですが8
、それを示してい17
ます。
momentjsのドキュメントによる
モーメントがmoment.fn.diffに渡すモーメントよりも早い場合、戻り値は負になります。
それをあなたの例に翻訳するには:
TimeAがtimeBがmoment.diffに渡されるよりも前の場合、値は負になります
ミリ秒として返されるの-28800000
は次のような命令です:真夜中からそのミリ秒の量を取る、それはあなたに異なる時間を与えます
だからあなたがすべきことは
var DiffAB = moment(TimeB.diff(TimeA)).utcOffset(0).format('HH:mm:ss');
差分ドキュメントhttps://momentjs.com/docs/#/displaying/difference/
ドキュメントからの例
これを考える簡単な方法は、.diff(をマイナス演算子に置き換えることです。
// a < b
a.diff(b) // a - b < 0
b.diff(a) // b - a > 0
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加