javascript - Moment.js isBefore 函数未按预期工作

标签 javascript momentjs

我的控制台日志给出了意外的输出。

var bool = (moment("2017-04-08 23:00:00").isBefore(moment("2017-04-09 01:00:00", 'day')));
console.log(bool);

出于某种原因,输出是错误的。 根据文档,以下代码应返回 true。

moment('2010-10-20').isBefore('2011-01-01', 'year')

即使不是整整一年,如果是不同的一年,我的理解是它应该返回 false。 就我而言,虽然还不到 24 小时,但已经是不同的一天了。 有什么我理解不正确的地方吗?

最佳答案

@Oliver Charlesworth是的,moment() 不接受 'day' 作为第二个参数。看看here并向下滚动以查看其所有有效签名。


话虽如此,您可以转换

isBefore(moment("2017-04-09 01:00:00", 'day'));

isBefore(moment('2017-04-09 01:00:00'), 'day');

或到

isBefore('2017-04-09 01:00:00', 'day');

两者都有效。


Here是 isBefore 的签名。

关于javascript - Moment.js isBefore 函数未按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43312848/

相关文章:

javascript - moment 库是否支持时区缩写的翻译,如 EST、IST 等

AngularJS 如何向返回日期的函数添加 +1

javascript - 如何处理网页中的所有事件

javascript - 像 Rails 一样,在 Node.js (node-orm) 中链接模型关系

javascript - 如何让UI线程持续运行

javascript - 日期格式 - momentjs - 使用语言环境分别提取日期和时间

javascript - 在 Chrome 扩展中打开和关闭一个简单的弹出窗口

javascript - 在 jQuery 'click' 中创建的对象仍然存在,即使创建了一个新对象

javascript - moment.js 中的 isValid() 和 _isValid 有什么区别?

javascript - 如何根据日历将 JSON 数据分组到杂草中?