Как исправить дату выпуска сортировки в столбце таблицы данных? - PullRequest
1 голос
/ 09 апреля 2020

У меня есть таблицы данных, которые содержат несколько столбцов дат. Но дата всех столбцов не работает идеально при сортировке по c и des c. Просто чтобы сообщить, что все мои даты в формате дд-мм-гггг. Я использую функцию, чтобы сделать ее как дд-мм-гггг.

enter image description here

Я пытаюсь применить эту ссылку, но нет помощи. Я не знал, правильно ли я подал заявление, поправьте меня.

HTML

<table id="projectListTable">
    <thead>
        <tr>
            <th>Project Name</th>
            <th>Plan Start</th>
            <th>Plan Finish</th>
        </tr>
    </thead>
</table>

JS

jQuery.extend(jQuery.fn.dataTableExt.oSort, {
    "extract-date-pre": function(data) {
        if (data == null){
            return data;
        }
        else {
            new_data = data.split("T");
            new_data[0] = displayDate(new_data[0]);
            return new_data[0];
        }
    },
    "extract-date-asc": function(a, b) {
        return ((a < b) ? -1 : ((a > b) ? 1 : 0));
    },
    "extract-date-desc": function(a, b) {
        return ((a < b) ? 1 : ((a > b) ? -1 : 0));
    }
});    

$('#projectListTable').DataTable({
    columns: [           
        { data : "project_name" },
        { data : "project_planned_start",        
            render: function(data){
                if (data == null){
                    return data;
                }
                else {
                    new_data = data.split("T");
                    new_data[0] = displayDate(new_data[0]);
                    return new_data[0];
                }
            }
        },
        { data : "project_planned_end",
            render: function(data){
                if (data == null){
                    return data;
                }
                else {
                    new_data = data.split("T");
                    new_data[0] = displayDate(new_data[0]);
                    return new_data[0];
                }
            }
        }     
    ],
    columnDefs: [
        {
            type: 'extract-date',
            targets: [1]
        },
        {
            type: 'extract-date',
            targets: [2]
        }
    ]
});

1 Ответ

2 голосов
/ 09 апреля 2020

Если ваши фактические данные в формате ISO 8601.

Пример: 2019-03-12T04:08:08.069Z

Вы можете использовать в render функцию каждого столбца.

{
    data: "project_planned_start",
    render: function(data, type) {
        if (type === 'sort') { // ADD this for sorting
            return data;
        }
        if (data == null) {
            return data;
        } else {
            new_data = data.split("T");
            new_data[0] = displayDate(new_data[0]);
            return new_data[0];
        }
    }
},
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...