isBefore() 2.0.0+
moment().isBefore(Moment|String|Number|Date|Array);
moment().isBefore(Moment|String|Number|Date|Array, String);
检查一个 moment 是否在另一个 moment 之前。 第一个参数会被解析为 moment(如果尚未解析)。
如果要将粒度限制为毫秒以外的单位,则将单位作为第二个参数传入。
由于第二个参数用于确定精度,且不仅仅是要检查的单个值,因此使用 day 将会检查年份、月份、日期。
moment('2010-10-20').isBefore('2010-12-31', 'year'); // false
moment('2010-10-20').isBefore('2011-01-01', 'year'); // true
与 moment#isAfter
和 moment#isSame
一样,moment#startOf
支持的任何时间单位也适用于 moment#isBefore
。
year month week isoWeek day hour minute second
如果未将任何内容传给 moment#isBefore
,则它将会默认为当前时间。
注意:moment().isBefore()
具有未定义的行为,且不应被使用! 如果代码运行快速,则初始创建的 moment 将会与isBefore 中创建的要执行检查的相同,因此结果将会为 false
。 但是,如果代码运行速度较慢,则有可能在 isBefore 中创建的 moment 可测量地在 moment()
中创建的之后,因此该调用将会返回 true
。
isSame() 2.0.0+
moment().isSame(Moment|String|Number|Date|Array);
moment().isSame(Moment|String|Number|Date|Array, String);
检查一个 moment 是否与另一个 moment 相同。 第一个参数会被解析为 moment(如果尚未解析)。
moment('2010-10-20').isSame('2010-10-20'); // true
如果要将粒度限制为毫秒以外的单位,则将单位作为第二个参数传入。
moment('2010-10-20').isSame('2009-12-31', 'year'); // false
moment('2010-10-20').isSame('2010-01-01', 'year'); // true
moment('2010-10-20').isSame('2010-12-31', 'year'); // true
moment('2010-10-20').isSame('2011-01-01', 'year'); // false
当包含第二个参数时,则它将会匹配所有等于或更大的单位。 传入 month
将会检查 month
和 year
。 传入 day
将会检查 day
、month
和 year
。
moment('2010-01-01').isSame('2011-01-01', 'month'); // false, 不同的年份
moment('2010-01-01').isSame('2010-02-01', 'day'); // false, 不同的月份
与 moment#isAfter
和 moment#isBefore
一样,moment#startOf
支持的任何时间单位也适用于 moment#isSame
。
year month week isoWeek day hour minute second
如果两个 moment 的时区不同,则第一 moment 的时区会被用于比较。
// 注意:澳大利亚/悉尼在这些日期的 UTC+11:00
moment.tz("2018-11-09T10:00:00", "Australia/Sydney").isSame(moment.tz("2018-11-08T12:00:00", "UTC"), "day"); // false
moment.tz("2018-11-08T12:00:00", "UTC").isSame(moment.tz("2018-11-09T10:00:00", "Australia/Sydney"), "day"); // true
注意:moment().isSame()
具有未定义的行为,且不应被使用! 如果代码运行快速,则初始创建的 moment 将会与isSame 中创建的要执行检查的相同,因此结果将会为 true
。 但是,如果代码运行速度较慢,则有可能在 isSame 中创建的 moment 可测量地在 moment()
中创建的之后,因此该调用将会返回 false
。
isAfter() 2.0.0+
moment().isAfter(Moment|String|Number|Date|Array);
moment().isAfter(Moment|String|Number|Date|Array, String);
检查一个 moment 是否在另一个 moment 之后。 第一个参数会被解析为 moment(如果尚未解析)。
moment('2010-10-20').isAfter('2010-10-19'); // true
如果要将粒度限制为毫秒以外的单位,则将单位作为第二个参数传入。
由于第二个参数用于确定精度,且不仅仅是要检查的单个值,因此使用 day 将会检查年份、月份、日期。
moment('2010-10-20').isAfter('2010-01-01', 'year'); // false
moment('2010-10-20').isAfter('2009-12-31', 'year'); // true
与 moment#isSame
和 moment#isBefore
一样,moment#startOf
支持的任何时间单位也适用于 moment#isAfter
。
year month week isoWeek day hour minute second
如果未将任何内容传给 moment#isAfter
,则它将会默认为当前时间。
moment().isAfter(); // false
isSameOrBefore() 2.11.0+
moment().isSameOrBefore(Moment|String|Number|Date|Array);
moment().isSameOrBefore(Moment|String|Number|Date|Array, String);
检查一个 moment 是否在另一个 moment 之前或与之相同。 第一个参数会被解析为 moment(如果尚未解析)。
moment('2010-10-20').isSameOrBefore('2010-10-21'); // true
moment('2010-10-20').isSameOrBefore('2010-10-20'); // true
moment('2010-10-20').isSameOrBefore('2010-10-19'); // false
如果要将粒度限制为毫秒以外的单位,则将单位作为第二个参数传入。
由于第二个参数用于确定精度,且不仅仅是要检查的单个值,因此使用 day 将会检查年份、月份、日期。
moment('2010-10-20').isSameOrBefore('2009-12-31', 'year'); // false
moment('2010-10-20').isSameOrBefore('2010-12-31', 'year'); // true
moment('2010-10-20').isSameOrBefore('2011-01-01', 'year'); // true
与 moment#isAfter
和 moment#isSame
一样,moment#startOf
支持的任何时间单位也适用于 moment#isSameOrBefore
:
isSameOrAfter() 2.11.0+
moment().isSameOrAfter(Moment|String|Number|Date|Array);
moment().isSameOrAfter(Moment|String|Number|Date|Array, String);
检查一个 moment 是否在另一个 moment 之后或与之相同。 第一个参数会被解析为 moment(如果尚未解析)。
moment('2010-10-20').isSameOrAfter('2010-10-19'); // true
moment('2010-10-20').isSameOrAfter('2010-10-20'); // true
moment('2010-10-20').isSameOrAfter('2010-10-21'); // false
如果要将粒度限制为毫秒以外的单位,则将单位作为第二个参数传入。
由于第二个参数用于确定精度,且不仅仅是要检查的单个值,因此使用 day 将会检查年份、月份、日期。
moment('2010-10-20').isSameOrAfter('2011-12-31', 'year'); // false
moment('2010-10-20').isSameOrAfter('2010-01-01', 'year'); // true
moment('2010-10-20').isSameOrAfter('2009-12-31', 'year'); // true
与 moment#isSame
和 moment#isBefore
一样,moment#startOf
支持的任何时间单位也适用于 moment#isSameOrAfter
:
year month week isoWeek day hour minute second
isBetween() 2.9.0+
//从 2.13.0 开始
moment().isBetween(moment-like, moment-like);
moment().isBetween(moment-like, moment-like, String);
moment().isBetween(moment-like, moment-like, String, String);
// 其中 moment-like 是 Moment|String|Number|Date|Array
//2.9.0 至 2.12.0
moment().isBetween(moment-like, moment-like);
moment().isBetween(moment-like, moment-like, String);
// 其中 moment-like 是 is Moment|String|Number|Date|Array
检查一个 moment 是否在其他两个 moment 之间,可选地检查指定的单位刻度(分钟,小时,日期等)。 这个匹配是排他的。 前两个参数会被解析为 moment(如果尚未解析)。
moment('2010-10-20').isBetween('2010-10-19', '2010-10-25'); // true
moment('2010-10-20').isBetween('2010-10-19', undefined); // true, 因为 moment(undefined) 等效于 moment()
如果要将粒度限制为毫秒以外的单位,则将单位作为第三个参数传入。
moment('2010-10-20').isBetween('2010-01-01', '2012-01-01', 'year'); // false
moment('2010-10-20').isBetween('2009-12-31', '2012-01-01', 'year'); // true
与 moment#isSame
、moment#isBefore
、moment#isAfter
一样,moment#startOf
支持的任何时间单位也适用于 moment#isBetween
。 年份、月份、星期、ISO星期、日期、小时、分钟、秒钟。
2.13.0 版本引入了包容性。 [
表示包含。 (
表示排除。 如果使用包容性参数,则必须传入两个指示符。
moment('2016-10-30').isBetween('2016-10-30', '2016-12-30', null, '()'); //false
moment('2016-10-30').isBetween('2016-10-30', '2016-12-30', null, '[)'); //true
moment('2016-10-30').isBetween('2016-01-01', '2016-10-30', null, '()'); //false
moment('2016-10-30').isBetween('2016-01-01', '2016-10-30', null, '(]'); //true
moment('2016-10-30').isBetween('2016-10-30', '2016-10-30', null, '[]'); //true
注意,如果 from
和 to
参数相同,但包容性参数不同,则将会返回 false。
moment('2016-10-30').isBetween('2016-10-30', '2016-10-30', null, '(]'); //false
如果未指定包容性参数,则 Moment 将会默认为 ()
。
isDST() 1.2.0+
moment().isDST();
moment#isDST
检查当前时刻是否为夏令时(daylight saving time)。
moment([2011, 2, 12]).isDST(); // false, 2011年3月12日不是 DST。
moment([2011, 2, 14]).isDST(); // true, 2011年3月14日是 DST。
// 此示例适用于 "en" 语言环境:https://www.timeanddate.com/time/dst/2011.html
isDSTShifted() 新增于 2.3.0,废弃于 2.14.0
moment('2013-03-10 2:30', 'YYYY-MM-DD HH:mm').isDSTShifted()
注意:从2.14.0版本开始,不推荐使用此功能。 修改矩对象后,它没有给出正确的答案。 欲了解更多信息,请参考moment / 3160
验证的另一个重要步骤是知道日期是否已由DST更改。 例如,在美国大部分地区:
这是因为夏时制将时间从2:00更改为3:00,因此2:30并不是实时时间。 结果时间取决于浏览器,可以向前或向后调整时间。 使用moment#isDSTShifted来测试这种情况。
注意:在2.3.0之前,处于这种情况的Moment对象始终在矩#isValid;中返回false。 他们现在返回true。
isLeapYear() 1.0.0+
moment().isLeapYear();
如果该年是闰年,则 moment#isLeapYear
返回 true
,否则返回 false
。
moment([2000]).isLeapYear() // true
moment([2001]).isLeapYear() // false
moment([2100]).isLeapYear() // false
isMoment() 1.5.0+
要检查变量是否为 moment 对象,则使用 moment.isMoment()
。
moment.isMoment() // false
moment.isMoment(new Date()) // false
moment.isMoment(moment()) // true
从 2.11.0 版本开始,还可以通过 instanceof
运算符检测 moment 对象:
moment() instanceof moment // true
isDate() 2.9.0+
moment.isDate(obj);
要检查变量是否为原生 js Date 对象,则使用 moment.isDate()
。
moment.isDate(); // false
moment.isDate(new Date()); // true
moment.isDate(moment()); // false
作者:terry,如若转载,请注明出处:https://www.web176.com/momentjs/2370.html