2012-03-01 2 views
0

Я использую плагин jQuery для данных; он отлично работает при сортировке столбцов, содержащих текст и цифры, но у меня есть проблема с сортировкой столбцов, содержащих значения даты.Сортировка значений даты с использованием Datatable jQuery plugin

Например, когда я нажимаю на колонке даты я получаю:

01-03-2012 
27-02-2012 
29-02-2012 
... 
... 

Однако реальный порядок должен быть такой:

01-03-2012 
29-02-2012 
27-02-2012 

NB: Я использую формат дату французского d-m-Y ,

ответ

1

Вы посмотрели Sorting plug-ins page?

Следующие данные копируются непосредственно с этой страницы. Вы, возможно, придется настроить код немного (например, расщепление на -, а не / и т.д.), но большая часть работы делается для вас:

Дата (дд/мм/YY)

Ответы на внутренние сортировки данных DataTables на Date.parse(), который является частью языка Javascript, но вы можете отсортировать по датам, которые не распознает. Ниже приведена плагин для сортировки дат в формате dd/mm/yy. Обратите внимание, что плагин обнаружения типа предоставляется в , автоматически выберите этот тип сортировки, если необходимо.

jQuery.fn.dataTableExt.oSort['uk_date-asc'] = function(a,b) { 
    var ukDatea = a.split('/'); 
    var ukDateb = b.split('/'); 

    var x = (ukDatea[2] + ukDatea[1] + ukDatea[0]) * 1; 
    var y = (ukDateb[2] + ukDateb[1] + ukDateb[0]) * 1; 

    return ((x < y) ? -1 : ((x > y) ? 1 : 0)); 
}; 

jQuery.fn.dataTableExt.oSort['uk_date-desc'] = function(a,b) { 
    var ukDatea = a.split('/'); 
    var ukDateb = b.split('/'); 

    var x = (ukDatea[2] + ukDatea[1] + ukDatea[0]) * 1; 
    var y = (ukDateb[2] + ukDateb[1] + ukDateb[0]) * 1; 

    return ((x < y) ? 1 : ((x > y) ? -1 : 0)); 
}; 
+0

спасибо человеку за помощью, я ценю это :) –

+0

@IdilassiJassi: Добро пожаловать :) Удачи в вашем проекте! –

+0

thx again my freind :) –