问题描述
我正在使用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
}
})