【发布时间】:2015-11-14 04:42:17
【问题描述】:
假设一个学期从 2015 年 11 月 1 日到 2016 年 1 月 3 日。要比较的示例日期如下('YYYY-MM-DD'):
2015-10-12 = false
2015-11-01 = true (inclusive)
2015-12-20 = true
2015-01-03 = true (inclusive)
2016-01-30 = false
2017-11-21 = true (year is ignored)
2010-12-20 = true (year is ignored)
有没有办法可以用 MomentJS 实现这个结果?
【问题讨论】:
-
最简单的解决方案是测试目标日期是否在界限内,如果是,则返回 true,否则将目标日期的年份(您可能需要使用它的副本)设置为2015,检测是否在范围内,如果是,返回true,否则,设置年份为2016,检测是否在范围内,如果是,返回true,否则返回false
-
感谢您的反馈。当我在日历中使用它时,我会对每个用户查询进行多次比较。我只是想知道是否有另一种方法。
-
有一个使用
'____-MM-DD'格式忽略年份和isBetween()进行比较的anwser。我想知道为什么那个人删除了他的帖子,解决方案有效。我在删除之前测试了代码:pastebin.com/NSJVRdxY -
@ShanShan ...我也看到了,想知道这是否真的有效。我认为只有在边界没有不同的年份时才会起作用。如果它实际上适用于不同的年份,则该方法将始终返回积极的结果。我想,这就是它被删除的原因
-
@ShanShan 这是因为它没有正确处理一月份的日期。忽略年份意味着 2017-01-03 默认为 2015-01-03,不在 2015-11-01 到 2016-01-03 的范围内。我修复了它,更新的答案如下。
标签: javascript datetime momentjs