web-dev-qa-db-ja.com

moment.jsの差分日付フォーマット

私はmoment.jsを使用していて、2つのタイムスタンプの差を計算し、後でフォーマットして、divに表示します。

var diffTime = moment(1390310146.791877).diff( 1390309386.271075);

これで760秒になりますが、次のようにフォーマットしたいと思います。

(日、時間、分、秒)。日、時間、秒が0より大きい場合にのみ表示されます。

どうすればそれを達成できますか?

14
Newcoma

これを試して

var diffTime = moment(moment(1390310146.791877).diff( 1390309386.271075)).format('H m s');

"5 30 0"を出力します

編集

ここに違いを得る簡単な方法があります。このため、両方の時間が同じタイムゾーンにある必要があります。

var a = moment(1390310146.791877);
var b = moment(1390309386.271075);
a.diff(b)//To get the difference in milliseconds
a.diff(b,'seconds')//To get the difference in seconds
a.diff(b,'minutes')//To get the difference in minutes 
a.zone()//Get the timezone offset in minutes

お役に立てれば。

21
Anto Subash

moment.durationを使用する必要があります

var diffTime = moment('2016-06-13T00:00:00+08:00')
    .diff( '2016-06-13T00:00:00+00:00');
var duration = moment.duration(diffTime);
var years = duration.years(),
    days = duration.days(),
    hrs = duration.hours(),
  mins = duration.minutes(),
  secs = duration.seconds();

var div = document.createElement('div');
div.innerHTML = years + ' years ' + days + ' days ' + hrs + ' hrs ' + mins + ' mins ' + secs + ' sec';
document.body.appendChild(div);

jsfiddle

21
user1021364