我正在使用 Moment.js 并希望将 unix 时间戳转换为(始终)显示从当前时间开始的几分钟前。例如)4 分钟前、30 分钟前、94 分钟前等。
现在我正在使用:
moment.unix(d).fromNow()
但这并不总是以分钟为单位显示,例如)一小时前、一天前等。我尝试过使用 .asMinutes(),但我相信这只是带有 moment.duration() 的词。
我正在使用 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();
minutesFromNow()
请注意,在我的扩展返回一个字符串之后,其他时刻方法将无法链接。
编辑:
固定复数扩展(0 min s , 1 min, 2 min s):
moment.fn.minutesFromNow = function() {
var r = Math.floor((+new Date() - (+this))/60000);
return r + ' min' + ((r===1) ? '' : 's') + ' ago';
}
如果您喜欢长格式,也可以将“min”替换为“minute”。
只需修改 moment.js 代码中的“find”函数,使其返回分钟:
from : function (time, withoutSuffix) {
return moment.duration(this.diff(time)).asMinutes();
}
这是一个例子。
...或者,甚至更好。只需将其添加为一个名为“fromNowInMinutes”的新函数。