在使用 max 和 min 方法比较两个 MomentJS 对象时,我遇到了一个奇怪的结果。它们似乎返回了错误的值。例如,此代码返回今天而不是明天:
moment().max(moment().add(1, 'd'))
谁能解释这种行为?
在使用 max 和 min 方法比较两个 MomentJS 对象时,我遇到了一个奇怪的结果。它们似乎返回了错误的值。例如,此代码返回今天而不是明天:
moment().max(moment().add(1, 'd'))
谁能解释这种行为?
min
您误解了and的含义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
最迟,结果可以是第二个日期)。
该文档有一个明确的报价:
有时,服务器时钟与客户端时钟并不完全同步。这最终会显示人性化的字符串,例如“几秒钟内”而不是“几秒钟前”。您可以使用 moment#max() 来防止这种情况
因此,该.max
函数是数值最小值(选择较早时刻)
查看 MomentJS 2.2.1 的源代码后,这里是 max() 的源代码:
max: function ( other ) {
other = moment.apply( null, arguments );
return other > this ? this : other;
},
好像他们稍后会回来this
..other
奇怪..