Формат даты сбора данных - PullRequest
1 голос
/ 19 октября 2019

У меня проблема с многократной фильтрацией по дате начала столбца моей таблицы. Этот столбец заполнен данными строки, отформатированными как ('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

1 Ответ

1 голос
/ 19 октября 2019

Строка 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...