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

标签 javascript time momentjs

我正在使用 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();

Fiddle

请注意,在 minutesFromNow() 之后,其他 moment 方法将无法链接,因为我的扩展返回一个字符串。

编辑:

固定复数的扩展(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”替换为“minute”。

Fiddle

关于javascript - Moment.js unix 时间戳总是以分钟为单位显示时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12134568/

相关文章:

mysql - 选择时间在指定时间的 -1 到 5 分钟之间的位置

mongodb - 在 Meteor 集合中插入一个 momentjs 对象

javascript - 如何在鼠标滚轮上进行水平滚动?

java - Htmlunit 中的 HtmlAnchor click() 函数不起作用

javascript - 使用js库内部缓存的数据

javascript - Android 上未定义 Phonegap/Cordova 设备 API

java - 比较没有时间的日期

java - Android 时间、时区和 GPS 位置

javascript - 在 for 循环中使用 moment 对象

javascript - 我如何在 Moment.js 中准确获取天数