moment.js差异日期格式

New*_*oma 12 javascript date momentjs

我正在使用moment.js并想要计算两个时间戳之间的差异,然后将它们格式化并在div中显示它们.

var diffTime = moment(1390310146.791877).diff( 1390309386.271075);
Run Code Online (Sandbox Code Playgroud)

这给了我760秒,但我想像这样格式化:

(天,小时,分钟,秒),如果它们高于0,则仅显示天,小时和秒.

我如何实现这一目标?

小智 20

应该使用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);
Run Code Online (Sandbox Code Playgroud)

的jsfiddle

  • 为了使其正常工作,您还需要几个月的时间。`月 = 持续时间.月()` (2认同)

Ant*_*ash 19

试试这个

var diffTime = moment(moment(1390310146.791877).diff( 1390309386.271075)).format('H m s');
Run Code Online (Sandbox Code Playgroud)

它将输出"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
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助.