поле даты сортировки с табличным сортировщиком - PullRequest
2 голосов
/ 05 марта 2012

Я использую плагин JQuery TableSorter.В таблице есть столбец, который показывает даты в формате 05 Mar 2012.Кажется, что плагин таблиц сортировки обрабатывает этот столбец как текст, поскольку сортирует его в следующем порядке:

  • 05 марта 2012
  • 06 января 2012
  • 07 декабря 2012

Как можно вместо этого отсортировать эти даты в хронологическом порядке?

Ответы [ 4 ]

3 голосов
/ 27 февраля 2013

Вы также можете добавить скрытый тег span перед датой в числовом формате (ггггммдд).Этот текст будет первым и будет использоваться для сортировки, но он будет скрыт от глаз и покажет только нужный вам формат.

    <td><span style="display:none">20130923</span>23rd September 2013</td>
3 голосов
/ 05 марта 2012

Разобрать строку даты в дату, а затем преобразовать ее в миллисекунды. Позвольте tableorter сортировать столбец как числовой.

$.tablesorter.addParser({ 
    id: 'my_date_column', 
    is: function(s) { 
        // return false so this parser is not auto detected 
        return false; 
    }, 
    format: function(s) { 
        var timeInMillis = new Date.parse(s);
        return timeInMillis;         
    }, 
    // set type, either numeric or text 
    type: 'numeric' 
}); 

$(function() { 
    $("table").tablesorter({ 
        headers: { 
            6: {       // Change this to your column position
                sorter:'my_date_column' 
            } 
        } 
    }); 
});

Если у вас возникли проблемы с Date.parse, см. Мой ответ на этот вопрос .

1 голос
/ 05 марта 2012

Вам нужно будет использовать метод addParser и создать анализатор, который преобразует вашу строку в объект date.

следуйте примеру на сайте плагина http://tablesorter.com/docs/example-parsers.html

Если нужен анализатор даты:

http://www.datejs.com/

РЕДАКТИРОВАТЬ: ваши даты легко конвертируются в показанный формат:

 console.log(new Date('05 Mar 2012'))//  logs proper date object
0 голосов
/ 05 марта 2012

В течение некоторого времени я не использовал TableSorter, но я помню, что у меня была похожая проблема с датами в Великобритании.

Вы можете добавить параметр dateformat в плагин TableSorter с вашим пользовательским форматом даты.*

...