2017-01-06 2 views
2

fromNow()機能を使用する方法は、moment.js docsstackoverflowを検索していますが、何時間も返しています。私はそれがテキストを追加し、その後.diffと、おそらく他の同様の機能を使用してこれを実行することが可能です知っているMoment.js fromNow()を使用して時間内のすべてを返す方法は?

moment([2017, 01, 05]).fromNow();  // a day ago 

moment([2017, 01, 05]).fromNow();  // 24 hours ago 

する必要がありますが、それはすることが可能である:

私は何を意味していますこれを行うには.fromNow()を使用しますか?

+0

これまでにお尋ねして削除しましたか? –

+0

いいえ、最初にそれを聞いて、なぜですか? –

+0

誰かが今日、私が今見つけることができない**非常に似たタイトルの質問を投稿しました。 –

答えて

6

relativeTimeThresholdからc相対的な時間を瞬時にカスタマイズする。ドキュメントとして

は言う:

duration.humanizeは、ユニットがそのように時間、分とみなされたときに定義したしきい値を有します。たとえば、デフォルトでは45秒以上が1分とみなされ、22時間以上は1日とみなされます。これらのカットオフを変更するには、s,m,h,d,Mのいずれか1つの単位がmoment.relativeTimeThreshold(unit, limit)を使用します。

あなたのケースでは、相対的な日数を時間にするために時間のしきい値を増やすことができます。ここでは26日に1時間から時間として時間を示す作業例:あなたが必要な場合は、瞬間あなたは私の例のrelativeTimehere 1で更なる相対時間をカスタマイズすることができます、ということ

var m1 = moment().subtract(5, 'h'); 
 
var m2 = moment().subtract(55, 'h'); 
 
var m3 = moment().subtract(1, 'd'); 
 

 
// Default results 
 
console.log(m1.fromNow()); 
 
console.log(m2.fromNow()); 
 
console.log(m3.fromNow()); 
 

 
// Change relativeTimeThreshold 
 
moment.relativeTimeThreshold('m', 60); 
 
moment.relativeTimeThreshold('h', 24*26); 
 

 
// Results in hours 
 
console.log(m1.fromNow()); 
 
console.log(m2.fromNow()); 
 
console.log(m3.fromNow());
<script src="//cdnjs.cloudflare.com/ajax/libs/moment.js/2.17.1/moment.min.js"></script>

注意)およびrelativeTimeRounding方法。

1

fromNow()を確実に使用したい場合は、瞬間の組み込み関数をオーバーライドする以外の方法はありません。たとえば、次のように時間の違いを返すために、それを上書きすることができます。

console.log(moment([2017,0,6]).fromNow()); 

返します:

19 

その後
moment.fn.fromNow = function (a) { 
    var duration = moment().diff(this, 'hours'); 
    return duration; 
} 

あなたはfromNow()は時間の値を返すことを確認することができます

注:19時に試してみました:)

関連する問題