了解 moment 用于日期检查的基本用法
Understanding basic use of moment for date checking
拜托,我是 moments
的新手,并不完全理解 utc
和 isBefore
方法的工作原理。
我有下面的代码 returns false
,我需要帮助理解为什么即使从逻辑上讲它应该是真的,因为 2021-07-11
在 2021-07-12
[=17 之前=]
var moment = require('moment');
moment.utc('2021-07-11').isBefore('2021-07-12', 'day') // returns false
任何指向资源的指针或返回 false 的原因都将不胜感激。
你当地的时区是什么?
您将本地 12 日与 UTC 11 进行比较。如果您的时区位于 西半球 半球,那么这是由于 'day'
参数导致的预期结果。当未指定时区时,momentJS 将采用本地时区。
momentjs 的全部意义在于将时区排除在比较等式之外,因此 .isBefore()
将 return true
仅 当传入值的日期部分小于 两个值转置到同一时区时的起始值。
在这种情况下,您的两个日期的日期部分 相等 而 before before 将 return false。
如果您当地的时区是 UTC +2,那么我们可以这样分解您的代码:
var utc = moment.utc('2021-07-11'):
var local = moment('2021-07-12');
// Local in UTC : 2021-07-11T22:00:00Z
utc.isBefore(local, 'day') // False
utc.isEqual(local, 'day') // True
拜托,我是 moments
的新手,并不完全理解 utc
和 isBefore
方法的工作原理。
我有下面的代码 returns false
,我需要帮助理解为什么即使从逻辑上讲它应该是真的,因为 2021-07-11
在 2021-07-12
[=17 之前=]
var moment = require('moment');
moment.utc('2021-07-11').isBefore('2021-07-12', 'day') // returns false
任何指向资源的指针或返回 false 的原因都将不胜感激。
你当地的时区是什么?
您将本地 12 日与 UTC 11 进行比较。如果您的时区位于 西半球 半球,那么这是由于 'day'
参数导致的预期结果。当未指定时区时,momentJS 将采用本地时区。
momentjs 的全部意义在于将时区排除在比较等式之外,因此 .isBefore()
将 return true
仅 当传入值的日期部分小于 两个值转置到同一时区时的起始值。
在这种情况下,您的两个日期的日期部分 相等 而 before before 将 return false。
如果您当地的时区是 UTC +2,那么我们可以这样分解您的代码:
var utc = moment.utc('2021-07-11'):
var local = moment('2021-07-12');
// Local in UTC : 2021-07-11T22:00:00Z
utc.isBefore(local, 'day') // False
utc.isEqual(local, 'day') // True