在Moment Js的两个date之间获得小时差

我能够使用MomentJs得到两个date之间的差异,如下所示:

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

但是,我也希望显示适用的时间(只有当> = 60分钟已过时)。

但是,当我尝试使用以下方法检索持续时间时:

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

它将返回当前的小时数,而不是两个date之间的小时数。

我如何获得两个时刻之间的差异?

你很近 您只需要使用duration.asHours()方法(请参阅文档 )。

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

以下代码块显示如何使用MomentJS计算两个date之间的天数差异。

 var now = moment(new Date()); //todays date var end = moment("2015-12-1"); // another date var duration = moment.duration(now.diff(end)); var days = duration.asDays(); console.log(days) 

或者你可以简单地做:

 var a = moment('2016-06-06T21:03:55');//now 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 

docs: 这里

 var __startTime = moment("2016-06-06T09:00").format(); var __endTime = moment("2016-06-06T21:00").format(); var __duration = moment.duration(moment(__endTime).diff(__startTime)); var __hours = __duration.asHours(); console.log(__hours); 
  var timecompare = { tstr: "", get: function (current_time, startTime, endTime) { this.tstr = ""; var s = current_time.split(":"), t1 = tm1.split(":"), t2 = tm2.split(":"), t1s = Number(t1[0]), t1d = Number(t1[1]), t2s = Number(t2[0]), t2d = Number(t2[1]); if (t1s < t2s) { this.t(t1s, t2s); } if (t1s > t2s) { this.t(t1s, 23); this.t(0, t2s); } var saat_dk = Number(s[1]); if (s[0] == tm1.substring(0, 2) && saat_dk >= t1d) return true; if (s[0] == tm2.substring(0, 2) && saat_dk <= t2d) return true; if (this.tstr.indexOf(s[0]) != 1 && this.tstr.indexOf(s[0]) != -1 && !(this.tstr.indexOf(s[0]) == this.tstr.length - 2)) return true; return false; }, t: function (ii, brk) { for (var i = 0; i <= 23; i++) { if (i < ii) continue; var s = (i < 10) ? "0" + i : i + ""; this.tstr += "," + s; if (brk == i) break; } }};