2012-08-26 96 views
7

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

现在我使用:

moment.unix(d).fromNow() 

但是,这并不总是以分钟为单位例如)一小时前,一天前显示,ECT。我曾尝试使用.asMinutes(),但我相信这只与moment.duration()的话。

回答

4

不知道这是可能的本地矩量法,但你可以很容易地使自己瞬间扩展:

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

Fiddle

注意minutesFromNow()作为后其他一刻方法不会支持链式我的扩展返回一个字符串。

编辑:

扩展具有固定复数(0分钟小号,1分钟,2分钟小号):

moment.fn.minutesFromNow = function() { 
    var r = Math.floor((+new Date() - (+this))/60000); 
    return r + ' min' + ((r===1) ? '' : 's') + ' ago'; 
} 

可以以及替换为 “分钟”,“分钟“,如果你喜欢长表。

Fiddle

+0

完美,这正是我想要的,而且效果很棒!谢谢! –

+0

不错..但是...我如何引入未来的时间戳?这给我带来了负面的分钟 –

2

刚刚修改的moment.js代码 “查找” 功能,使其返回分钟:

from : function (time, withoutSuffix) { 

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

} 

这里是一个example

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