我正在使用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分钟,1分钟,2分钟):
moment.fn.minutesFromNow = function() { var r = Math.floor((+new Date() - (+this))/60000); return r + ' min' + ((r===1) ? '' : 's') + ' ago'; }
如果您喜欢长形,也可以用“分钟”替换“min”.