Moment.js unix时间戳显示时间总是以分钟为单位

Sco*_*ell 7 javascript time momentjs

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

现在我正在使用:

moment.unix(d).fromNow()
Run Code Online (Sandbox Code Playgroud)

但这并不总是在几分钟内显示,例如一小时前,一天前,等等.我已经尝试过使用.asMinutes(),但我相信这只是带有moment.duration()的单词.

Fab*_*tté 5

不确定使用本机Moment方法是否可行,但是您可以轻松进行自己的Moment扩展:

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

小提琴

请注意,在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';
}
Run Code Online (Sandbox Code Playgroud)

如果您喜欢长格式,也可以用“分钟”替换“分钟”。

小提琴