2012-08-26 143 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」的新函數即可。

相關問題