у меня есть Datatable
который является списком проектов, и я хочу отсортировать столбец даты по убыванию.
Работает но сортирует только день.
Я хочу, чтобы последний добавленный проект был первым.
Мой сценарий:
<script>
$(function(){
/* Initialize Bootstrap Datatables Integration */
App.datatables();
/* Initialize Datatables */
$('#manage-table').dataTable({
"aoColumnDefs": [ { "bSortable": false, "aTargets": [ 0 ] } ],
"iDisplayLength": 10,
"aLengthMenu": [[10, 20, -1], [10, 20, "All"]],
"aaSorting": [[ 3, "desc" ]] //date column
});
/* Add placeholder attribute to the search input */
$('.dataTables_filter input').attr('placeholder', 'Search');
});
</script>
Вам нужно расширить функциональность сортировки DataTables для сортировки дат в формате DD-MM-YYYY
, Судя по вашему коду инициализации, скорее всего вы используете DataTables 1.9.x.
Смотрите обновленный код ниже, я пропустил код, который не был изменен:
jQuery.extend(jQuery.fn.dataTableExt.oSort, {
"date-uk2-pre": function (a) {
if (a == null || a == "") {
return 0;
}
var ukDatea = a.split('-');
return (ukDatea[2] + ukDatea[1] + ukDatea[0]) * 1;
},
"date-uk2-asc": function (a, b) {
return ((a < b) ? -1 : ((a > b) ? 1 : 0));
},
"date-uk2-desc": function (a, b) {
return ((a < b) ? 1 : ((a > b) ? -1 : 0));
}
});
/* Initialize Datatables */
$('#manage-table').dataTable({
"aoColumnDefs": [
{ "bSortable": false, "aTargets": [ 0 ] },
{ "sType": "date-uk2", "aTargets": [ 3 ] }
],
"iDisplayLength": 10,
"aLengthMenu": [[10, 20, -1], [10, 20, "All"]],
"aaSorting": [[ 3, "desc" ]] //date column
});
Я модифицировал оригинал date_uk
Плагин сортировки для сортировки по DD-MM-YYYY
вместо DD/MM/YYYY
,
Увидеть DataTables 1.9.x date_uk
плагин сортировки или же DataTables 1.10.x date_uk
плагин сортировки для дополнительной информации.
Других решений пока нет …