繁体   English   中英

Moment.js Unix时间戳始终以分钟为单位显示时间

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

我正在使用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()之后其他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';
}

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

小提琴

只需在moment.js代码中修改“查找”功能,即可返回分钟:

from : function (time, withoutSuffix) {

  return moment.duration(this.diff(time)).asMinutes();

}

这是一个例子

...或者甚至更好。 只需将其添加为名为“ fromNowInMinutes”的新函数即可。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM