Moment.js unix时间戳,以分钟为单位显示以前的时间

Moment.js unix timestamp to display time ago always in minutes

本文关键字:显示 时间 为单位 分钟 unix 时间戳 Moment js      更新时间:2023-09-26

我正在使用Moment.js,并希望将unix时间戳转换为(始终)显示当前时间的分钟前。例如)4分钟前、30分钟前、94分钟前等等。

现在我正在使用:

moment.unix(d).fromNow()

但这并不总是以分钟为单位显示,例如)一小时前、一天前等。我试过使用.asMinutes(),但我相信这只是带有moment.duration()的单词。

不确定本地Moment方法是否可以实现这一点,但您可以轻松地制作自己的Moment扩展:

moment.fn.minutesFromNow = function() {
    return Math.floor((+new Date() - (+this))/60000) + ' mins ago';
}
//then call:
moment.unix(d).minutesFromNow();

Fiddle

请注意,其他矩方法在minutesFromNow()之后将不可链接,因为我的扩展返回一个字符串。

编辑:

具有固定复数的扩展(0分钟s,1分钟,2分钟s

moment.fn.minutesFromNow = function() {
    var r = Math.floor((+new Date() - (+this))/60000);
    return r + ' min' + ((r===1) ? '' : 's') + ' ago';
}

如果你喜欢长格式,你也可以用"分钟"代替"分钟"。

Fiddle

只需修改moment.js代码中的"find"函数,即可返回minutes:

from : function (time, withoutSuffix) {
  return moment.duration(this.diff(time)).asMinutes();
}

下面是一个例子。

或者,甚至更好。只需将其添加为一个名为"fromNowInMinutes"的新函数即可。