javascript - 日期范围过滤器过滤当天

标签 javascript angularjs mongodb-query

我正在为 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/

相关文章:

java - 使用 Mongo 3 Java 驱动程序更新双数组

javascript - IndexedDB 将范围另存为

javascript - 有没有办法在 JavaScript 加载之前不加载 html?

javascript - QT:Javascript 执行缓慢(除非我登录到控制台)

javascript - 在 Angular 项目中迭代 JSON 响应以创建我可以在应用程序中使用的新 $scope 对象

mongodb - 使用golang mongo-driver,MongoDB更新操作不起作用

javascript - 验证不适用于具有 'Required' 属性的文件输入 - AngularJS

javascript - Angular 指令生成的链接上的 .stopPropagation() 具有嵌入功能

javascript - Node 总是返回空数组

node.js - SQL 'UNION ALL' 类似 MongoDB 中的实现