Как отсортировать по дате с плагином DataTables jquery?

Я использую таблицы данных плагин jQuery и хочу к sorty датами.

Я знаю, что они получили плагин, но я не могу найти, где на самом деле загрузить его с

http://datatables.net/plug-ins/sorting

Я полагаю, что мне нужен этот файл: dataTables.numericComma.js все же, я не могу найти его нигде и когда я загружаю таблицы данных, это, кажется, не находится в zip-файле.

Я также не уверен, должен ли я сделать своего собственного сортировщика даты для передачи в этот плагин.

Я пытаюсь отсортировать этот формат MM/DD/YYYY HH:MM TT (AM |PM)

Спасибо

Править

Как я могу изменить это на вид MM/DD/YYYY HH:MM TT (AM |PM) и изменить его на американскую дату?

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));
};

45
задан Kevin 17 January 2013 в 18:58
поделиться

1 ответ

Щелкните ссылку «показать подробности» в разделе Дата (дд / мм / ГГГ) , затем вы можете скопировать и вставить предоставленный там код подключаемого модуля


Обновление: Я думаю, вы можете просто изменить порядок массива, например:

jQuery.fn.dataTableExt.oSort['us_date-asc']  = function(a,b) {
    var usDatea = a.split('/');
    var usDateb = b.split('/');

    var x = (usDatea[2] + usDatea[0] + usDatea[1]) * 1;
    var y = (usDateb[2] + usDateb[0] + usDateb[1]) * 1;

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

jQuery.fn.dataTableExt.oSort['us_date-desc'] = function(a,b) {
    var usDatea = a.split('/');
    var usDateb = b.split('/');

    var x = (usDatea[2] + usDatea[0] + usDatea[1]) * 1;
    var y = (usDateb[2] + usDateb[0] + usDateb[1]) * 1;

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

Все, что я сделал, это переключил __ date_ [1] (день) и __ date_ [0] (месяц ) и заменил uk на us , чтобы вы не запутались. Я думаю, это должно позаботиться об этом за вас.


Обновление №2: у вас должна быть возможность просто использовать объект даты для сравнения. Попробуйте это:

jQuery.fn.dataTableExt.oSort['us_date-asc']  = function(a,b) {
 var x = new Date(a),
     y = new Date(b);
 return ((x < y) ? -1 : ((x > y) ?  1 : 0));
};

jQuery.fn.dataTableExt.oSort['us_date-desc'] = function(a,b) {
 var x = new Date(a),
     y = new Date(b);
 return ((x < y) ? 1 : ((x > y) ?  -1 : 0));
};
16
ответ дан 26 November 2019 в 20:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: