当前位置: 首页 > 知识库问答 >
问题:

如何对jquery数据表进行日期范围筛选?

司徒泰
2023-03-14

我使用的是jquery数据表。我在做日期范围筛选。当我选择“最小日期”和“最大日期”时,结果是数据表上没有筛选数据。我用了剧本

null

$(document).ready(function() {

  var table1 = $('#sample_2').DataTable({
    dom: 'Bfrtip',
    buttons: [
      'copy', 'csv', 'excel', 'pdf', 'print',
    ]
  });

  $.fn.dataTable.ext.search.push(
    function(settings, data, dataIndex) {
      //var min = $('#min').datepicker("getDate");
      // var max = $('#max').datepicker("getDate");
      var min = $('#min').datepicker({
        dateFormat: 'yyyy-mm-dd'
      }).val();
      var max = $('#max').datepicker({
        dateFormat: 'yyyy-mm-dd'
      }).val();
      //console.log(min);
      console.log(min);
      console.log(max);
      //var startDate = new Date(data[4]);
      var today = new Date();
      var dd = today.getDate();
      var mm = today.getMonth() + 1; //January is 0!

      var yyyy = today.getFullYear();
      if (dd < 10) {
        dd = '0' + dd;
      }
      if (mm < 10) {
        mm = '0' + mm;
      }
      var today = yyyy + '-' + mm + '-' + dd;
      var startDate = today;
      console.log(startDate);

      if (min == null && max == null) {
        return true;
      }
      if (min == null && startDate <= max) {
        return true;
      }
      if (max == null && startDate >= min) {
        return true;
      }
      if (startDate <= max && startDate >= min) {
        return true;
      }
      return false;
    }
  );


  $("#min").datepicker({
    onSelect: function() {
      table1.draw();
    },
    changeMonth: true,
    changeYear: true
  });
  $("#max").datepicker({
    onSelect: function() {
      table1.draw();
    },
    changeMonth: true,
    changeYear: true
  });

  // Event listener to the two range filtering inputs to redraw on input
  $('#min, #max').change(function() {
    table1.draw();
  });
});

null

null

$(document).ready(function() {

  var table1 = $('#sample_2').DataTable({
    dom: 'Bfrtip',
    buttons: [
      'copy', 'csv', 'excel', 'pdf', 'print',
    ]
  });

  $.fn.dataTable.ext.search.push(
    function(settings, data, dataIndex) {
      //var min = $('#min').datepicker("getDate");
      // var max = $('#max').datepicker("getDate");
      var min = $('#min').datepicker({
        dateFormat: 'yyyy-mm-dd'
      }).val();
      var max = $('#max').datepicker({
        dateFormat: 'yyyy-mm-dd'
      }).val();
      //console.log(min);
      console.log(min);
      console.log(max);
      //var startDate = new Date(data[4]);
      var today = new Date();
      var dd = today.getDate();
      var mm = today.getMonth() + 1; //January is 0!

      var yyyy = today.getFullYear();
      if (dd < 10) {
        dd = '0' + dd;
      }
      if (mm < 10) {
        mm = '0' + mm;
      }
      var today = yyyy + '-' + mm + '-' + dd;
      var startDate = today;
      console.log(startDate);

      if (min == null && max == null) {
        return true;
      }
      if (min == null && startDate <= max) {
        return true;
      }
      if (max == null && startDate >= min) {
        return true;
      }
      if (startDate <= max && startDate >= min) {
        return true;
      }
      return false;
    }
  );


  $("#min").datepicker({
    onSelect: function() {
      table1.draw();
    },
    changeMonth: true,
    changeYear: true
  });
  $("#max").datepicker({
    onSelect: function() {
      table1.draw();
    },
    changeMonth: true,
    changeYear: true
  });

  // Event listener to the two range filtering inputs to redraw on input
  $('#min, #max').change(function() {
    table1.draw();
  });
});

null

日期格式为YYYY-MM-DD。每次我用日期范围搜索时,结果不会出现在数据表中。请帮帮我,我哪里做错了。谢谢。

共有1个答案

齐浩淼
2023-03-14

在任何编程语言中,都应该尽量避免对日期进行完全的字符串比较。

直接比较一下你们的日期,或者如果一定要的话,比较一下它们的数值。

在使用日期字符串时,您已经落入了一个陷阱,其中一个使用“-”,另一个使用“/”,它具有不同的ascii值,因此具有不同的><排序顺序。此外,当您需要跨越不同年份时,顺序mm-dd-yyyy而不是yyyy-mm-dd也不会有帮助。

一开始最好避免将它们转换成字符串进行比较。

 类似资料:
  • 我有一个带有aoColumnDefs的数据表,其中包含: 此列中的日期是格式为“MM/dd/yyyy-MM/dd/yyyy”的字符串。不幸的是,此列当前排序不正确。它不是按年、月、日排序,而是按月、日、年排序。 我假设这是一个日期格式问题(因为它是从左到右排序日期部分,假设我的日期是yyyy/mm/dd)。 在对数据表上的日期进行排序时,有没有办法设置使用的日期格式? 注意:我知道我可以对隐藏字段

  • 问题内容: 我有这样的文件: 是否可以按日期查询最近10天发布的文档数量?例如: 问题答案: 是的,您可以使用聚合轻松实现这一点,如下所示:

  • 我正在尝试添加一个带有日期范围筛选器的服务器端datatable实现。筛选器不筛选任何数据。我不知道它坏在哪里。需要你帮我弄清楚我错在哪里。 这是剧本。 这是Html

  • 我现在有一只熊猫。数据帧,它有一个和一组值。 我想排除给定

  • 我有一个表格,它给了我一个国家每年的gpi得分。

  • 问题内容: 我正在尝试建立一个SQL查询,该查询将为我提供具有相同价格的日期的日期范围。如果价格出现突破,我希望能在新的行中看到它。即使一个月中的某个时间有相同的价格,但如果价格介于两者之间的某个时间有变化,我希望将其视为具有特定日期范围的两个单独的行。 样本数据: 所需结果: 问题答案: 非关系解决方案 我认为没有其他答案是正确的。 不会工作 使用会强制将数据放入物理的“记录归档系统”结构中,然