我可以使用MomentJs得到两个日期之间的差异,如下所示:
moment(end.diff(startTime)).format("m[m] s[s]")
但是,我还想在适用的情况下显示小时(仅当>= 60分钟已经过时)。
然而,当我试图检索持续时间小时使用以下:
var duration = moment.duration(end.diff(startTime));
var hours = duration.hours();
它返回当前的小时数,而不是两个日期之间的小时数。
我如何得到两个时刻之间的小时差?
你所需要做的就是把hours作为第二个参数传递给moments diff函数。
var a = moment([21,30,00], "HH:mm:ss")
var b = moment([09,30,00], "HH:mm:ss")
a.diff(b, 'hours') // 12
文档:https://momentjs.com/docs/ # / /显示/不同
例子:
const dateFormat = "YYYY-MM-DD HH:mm:ss";
// Get your start and end date/times
const rightNow = moment().format(dateFormat);
const thisTimeYesterday = moment().subtract(1, 'days').format(dateFormat);
// pass in hours as the second parameter to the diff function
const differenceInHours = moment(rightNow).diff(thisTimeYesterday, 'hours');
console.log(`${differenceInHours} hours have passed since this time yesterday`);
<script
src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.20.1/moment.min.js">
</script>
有一个叫做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"
摘自文档:
都可以()
从()