我正在使用Moment.js,并希望将unix时间戳从当前时间转换为(始终)显示分钟前。例如,4分钟前,30分钟前,94分钟前,等等。
现在我正在使用:
moment.unix(d).fromNow()
但这并不总是在几分钟内显示,例如一小时前,一天前,等等。我尝试过使用.asMinutes(),但我相信只有使用moment.duration()的单词。
答案 0 :(得分:4)
不确定使用原生Moment方法是否可行,但您可以轻松制作自己的Moment扩展程序:
moment.fn.minutesFromNow = function() {
return Math.floor((+new Date() - (+this))/60000) + ' mins ago';
}
//then call:
moment.unix(d).minutesFromNow();
请注意,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';
}
如果您喜欢长形式,也可以用“分钟”替换“min”。
答案 1 :(得分:2)
只需修改moment.js代码中的“find”函数,使其返回分钟:
from : function (time, withoutSuffix) {
return moment.duration(this.diff(time)).asMinutes();
}
这是一个example。
...或者,甚至更好。只需将其添加为名为“fromNowInMinutes”的新函数。