【问题标题】:Datatable datepicker format数据表日期选择器格式
【发布时间】:2019-10-19 19:55:18
【问题描述】:

我在表格的列开始日期进行多重过滤时遇到问题。 此列填充格式为 ('dd-mm-yy') 的行数据。 我将此格式应用于我的日期选择器,但是当它尝试过滤表上的数据时,它似乎不起作用。

这是我的 Javascript 代码:

     $(document).ready(function(){
    $.fn.dataTable.ext.search.push(
    function (settings, data, dataIndex) {
        var min = $('#min').datepicker("getDate");
        var max = $('#max').datepicker("getDate");
        var startDate = new Date(data[4]);
        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({ 
        dateFormat: 'dd-mm-yy', onSelect: function () { table.draw(); }, changeMonth: true, changeYear: true  });
        $("#max").datepicker({ 
        dateFormat: 'dd-mm-yy',onSelect: function () { table.draw(); }, changeMonth: true, changeYear: true  });
        var table = $('#example').DataTable();

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

            table.draw();
        });
    });

这是JsFiddle

【问题讨论】:

    标签: jquery ajax datatables


    【解决方案1】:

    var startDate = new Date(data[4]); 行将您的日期读取为mm-dd-yyyy,这会导致日期无效。将其更改为以下行,您就可以开始了:

    var startDate = new Date(data[4].substr(6,4), data[4].substr(3,2)-1, data[4].substr(0,2));
    

    这里是JSFiddle

    【讨论】:

    • 请记住,Java 中的月份是从零开始的(一月是 0,二月是 1,...)
    猜你喜欢
    • 2014-04-22
    • 1970-01-01
    • 1970-01-01
    • 2018-07-27
    • 2016-07-07
    • 2014-05-08
    • 1970-01-01
    • 1970-01-01
    • 2020-04-13
    相关资源
    最近更新 更多