JQuery DataTable Дата Заказ - PullRequest
0 голосов
/ 28 июня 2019

У меня две проблемы.

В моей таблице есть столбец с датой создания, и я сортирую по этой дате. К сожалению, она сортируется как строка, а не как дата. (Я использую nodejs).

должно было быть

21.05.2019

22.04.2109

и мой код:

"order": [[0,"desc"],[ 1, "desc" ],[ 7, "desc" ]],

Я тоже попробовал плагин

"columnDefs": [                                                
                    {
                        "targets": [ 1 ],
                        "visible": true,
                        "searchable": false
                    },
                    {
                        "targets":7,
                        "type": "date-de"
                    },


<script src="https://cdnjs.cloudflare.com/ajax/libs/datatables/1.10.19/js/
jquery.dataTables.js" type="text/javascript"></script>

<script src="https://cdn.datatables.net/plug-ins/1.10.19/sorting/date-de.js"
 type="text/javascript"></script>

$(document).ready(function() {
   jQuery.extend(jQuery.fn.dataTableExt.oSort, {
    "extract-date-pre": function(value) {
        var date = $(value, 'span')[0].innerHTML;
        date = date.split('/');
        return Date.parse(date[1] + '/' + date[0] + '/' + date[2])
    },
    "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));
    }
});

но не сработало ...

Ответы [ 2 ]

1 голос
/ 28 июня 2019

Как я вижу, дата в формате: DD.MM.YYYY.Для разбора даты вам нужно разделить на . не /.

"extract-date-pre": function(value) {
    var date = $(value, 'span')[0].innerHTML;
    date = date.split('.').reverse().join('-');
    return Date.parse(date);
}
0 голосов
/ 28 июня 2019

Пожалуйста, только один вопрос за один раз, удалите выделенную часть и создайте новый вопрос с ней.

Ваш первый вопрос: Для того, чтобы дата могла правильно упорядочить дату, вы должны распечататьдата как год-месяц-день в скрытом элементе.

Например, я не знаю, как вы заполняете свою таблицу дат, но в обычном HTML вы будете делать что-то вроде:

<tr>
 <td>
   <span style="display:none">2019-05-22</span>
    22-05-2019
 </td>
</tr>

Таким образом, когда datatable упорядочивает столбец, он выбирает значение внутри скрытого диапазона, которое теперь можно упорядочить в виде простой строки.

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