我正在为 AngularJS 中的数据表设置一个相当简单的日期范围过滤器:
if (vm.datePopup.dateFrom.date) { //data extracted from "From" input
query.criteria.timestamp.$gte = vm.datePopup.dateFrom.date.toISOString();
} else {
vm.datePopup.dateFrom.date = query.criteria.timestamp.$gte = vm.minDate;
}
if (vm.datePopup.dateTo.date) { //data extracted from "To" input
query.criteria.timestamp.$lte = vm.datePopup.dateTo.date.toISOString();
}else {
vm.datePopup.dateTo.date = query.criteria.timestamp.$lte = new Date();
}
日期格式的示例是 "2017-12-01T09:14:03.539Z"
。
问题是,如果在两个输入中都设置了同一天,我不会获取数据,但如果我设置前几天/后几天,我会获取数据。我怀疑与格式有关,但我不知道如何解决这个问题。
最佳答案
我会用 moment.js 来做每天使用完全合格的时间:
if (vm.datePopup.dateFrom.date) { //data extracted from "From" input
query.criteria.timestamp.$gte = moment(vm.datePopup.dateFrom.date).startOf('day').toDate();
} else {
vm.datePopup.dateFrom.date = query.criteria.timestamp.$gte = moment(vm.minDate).startOf('day').toDate();
}
if (vm.datePopup.dateTo.date) { //data extracted from "To" input
query.criteria.timestamp.$lte = moment(vm.datePopup.dateTo.date).endOf('day').toDate();
} else {
vm.datePopup.dateTo.date = query.criteria.timestamp.$lte = moment().endOf('day').toDate();
}
关于javascript - 日期范围过滤器过滤当天,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48904281/