max メソッドと min メソッドを使用して 2 つの MomentJS オブジェクトを比較すると、奇妙な結果に遭遇しました。間違った値を返すようです。たとえば、次のコードは明日ではなく今日を返します。
moment().max(moment().add(1, 'd'))
誰でもこの動作を説明できますか?
max メソッドと min メソッドを使用して 2 つの MomentJS オブジェクトを比較すると、奇妙な結果に遭遇しました。間違った値を返すようです。たとえば、次のコードは明日ではなく今日を返します。
moment().max(moment().add(1, 'd'))
誰でもこの動作を説明できますか?
と の意味を誤解していmin
ますmax
。
テスト スイートから ( https://github.com/moment/moment/blob/develop/test/moment/min_max.js#L51 ):
equalMoment(test, now.max(future), now, "Now with the maximum of the future should be now");
意味を理解する方法は次のとおりです。a.max(b) <= b
(遅くとも、結果は2番目の日付になる可能性があります)。
ドキュメントには明確な引用があります:
サーバーのクロックがクライアントのクロックと完全に同期していないことがあります。これにより、「数秒前」ではなく「数秒後」などの人間化された文字列が表示されます。moment#max() でそれを防ぐことができます
したがって.max
、関数は数値の最小値です (以前の瞬間を選択)
MomentJS 2.2.1 のソース コードを調べた後、max() のソース コードを次に示します。
max: function ( other ) {
other = moment.apply( null, arguments );
return other > this ? this : other;
},
彼らは後で戻ってくるようthis
ですother
..奇妙な..