为什么 momentjs isSameOrBefore
和isSameOrAfter
函数不适用于isBefore
和isAfter
的数据?
以下是一些非常简单的隔离示例,其中isSameOrBefore
和isSameOrAfter
不起作用:
moment("2018-10-12 10:44:01").isSameOrBefore(moment("2018-10-12 10:44:00"))
TypeError: moment(...).isSameOrBefore is not a function [Learn More]
moment("2018-10-12 10:44:01").isSameOrAfter(moment("2018-10-12 10:44:02"))
TypeError: moment(...).isSameOrAfter is not a function [Learn More]
但是,对于相同类型的数据,
isBefore
和isAfter
可以正常工作:moment("2018-10-12 10:44:01").isBefore(moment("2018-10-12 10:44:00"))
false
moment("2018-10-12 10:44:01").isAfter(moment("2018-10-12 10:44:02"))
false
moment("2018-10-12 10:44:00").isBefore(moment("2018-10-12 10:44:01"))
true
moment("2018-10-12 10:44:02").isAfter(moment("2018-10-12 10:44:01"))
true
最佳答案
对我来说,此问题的解决方案是将Moment.js更新到2.23.0版本。我的moment.d.ts
文件误导了我,该文件出于未知原因而用于Moment.js的2.11.1版本,而不是我安装的版本(版本2.9.0)。
更新后,请确保在浏览器的调试器的文件浏览器中 checkin moment.js文件,并验证其是否与项目中的文件匹配-如果不匹配,至少在Firefox/Waterfox中,请尝试重新启动浏览器然后在遇到问题的项目页面上按Ctrl + F5。
对于我来说,不要对TypeScript的类型安全抱有太大的信心,这对我是一个教训!
关于javascript - 瞬间的isSameOrBefore和isSameOrAfter返回 “is not a function”(从瞬间调用并经过瞬间),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54127282/