如何解决MomentJS inBetween始终返回false
我正在使用Vue数据表,并且需要在两个日期之间搜索记录。我使用了moment.js inBetween
函数,这两个函数可以处理此问题。当我对日期进行硬编码时,它会返回正确的结果,但是函数似乎总是使用日期类型输入返回false
。请帮忙
var fDate = moment(this.startDate).format("DD-MM-YYYY")
var lDate = moment(this.endDate).format("DD-MM-YYYY")
tab = tab.filter(function (row) {
var compareDate = moment(row["createdAt"]).format("DD-MM-YYYY")
var comparison = moment(compareDate).isBetween(fDate,lDate) // always returns false
var t = moment("2010-10-20").isBetween("2010-10-19","2010-10-25") //returns true
console.log(compareDate,fDate,lDate,comparison,t)
})
可以在此处查看演示:https://codesandbox.io/s/inspiring-river-kg4bs?file=/src/App.vue:281-294
解决方法
isBetween
以类似瞬间的物体作为参数(在doc中引用)。顺便说一句,您只应使用format
来显示目的
moment().isBetween(moment-like,moment-like);
var tab = this.tableData
var fDate = moment(this.startDate)
var lDate = moment(this.endDate)
tab = tab.filter(function (row) {
var compareDate = moment(row["createdAt"])
var comparison = moment(compareDate).isBetween(fDate,lDate)
if (comparison) {
return true
} else {
return false
}
})
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。