我的控制台日志给了我意想不到的输出。
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')
即使它不是一整年过去,如果它是一个不同的年份,我的理解是它应该返回错误。 就我而言,虽然它还没有24小时,但却是另一天。 有什么我不能正确理解吗?
答案 0 :(得分:7)
@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的签名。
答案 1 :(得分:3)
The moment(...)
argument does not accept the 'day' parameter.
Instead, you should be calling isBefore(...)
with the day parameter like so:
moment(...).isBefore(moment(...), 'day'));
More info can be found at the moment docs here.
答案 2 :(得分:0)
同样发现chrome和safari浏览器之间的问题,然后我发现,safari浏览器没有正确验证时区和微秒值的日期然后我比较日期如下
.toISOString()
而不是使用带有微秒和时区的日期
"2021-05-11 22:00:23"
那么它对我来说很好