我可以使用MomentJs得到两个日期之间的差异,如下所示:

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

但是,我还想在适用的情况下显示小时(仅当>= 60分钟已经过时)。

然而,当我试图检索持续时间小时使用以下:

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

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

我如何得到两个时刻之间的小时差?


当前回答

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

如您所见,开始日期和结束日期需要是此方法工作的时刻对象。

其他回答

 calcDifferential(from, to) {
      const fromTime = this.$moment(from, 'hh:mm:ss')
      const toTime = this.$moment(to, 'hh:mm:ss')
      const ms = toTime.diff(fromTime)
      const d = this.$moment.duration(ms)
      const s = d.format()
      return s
    }

有一个叫做fromNow()的很棒的moment方法,它会以人类可读的形式返回特定时间的时间,就像这样:

moment('2019-04-30T07:30:53.000Z').fromNow() // an hour ago || a day ago || 10 days ago

或者如果你想在两个特定的日期之间,你可以使用:

var a = moment([2007, 0, 28]);
var b = moment([2007, 0, 29]);
a.from(b); // "a day ago"

摘自文档:

都可以() 从()

下面的代码块展示了如何使用MomentJS计算两个日期之间的天数差异。

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)

来源:https://momentjs.com/docs/ / /显示/不同

let startDate = "2022-08-14"; let endDate = "2022-08-20"; let startDateMoment = moment(startDate.split('-'));// ["2022", "08", "14"] let endDateMoment = moment(endDate.split('-')); console.log('Difference: ', endDateMoment. log)diff (startDateMoment '时间'));/ / 6 < script src = " https://momentjs.com/downloads/moment.js " > < /脚本>

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);