4

我正在使用Tablesorter插件对表格进行排序。第四列是具有格式的日期字段:

--> 2013 年 1 月 30 日

--> 2013 年 2 月 1 日

当我尝试对格式进行排序时,它会给出错误的排序。

我的视图页面:(日期栏之一)

<td onclick="viewTrainingeDetails(${privateTrainingInstance?.id})"><g:formatDate format="dd MMM yyyy" date="${privateTrainingInstance?.startDate}" /></td>

jQuery

 $(function() {
         $("#myTable").tablesorter(); 
   });
4

1 回答 1

13

尝试添加这个自定义解析器(演示):

$.tablesorter.addParser({
    id: "date",
    is: function (s) {
        return false;
    },
    format: function (s, table) {
        return new Date(s).getTime() || '';
    },
    type: "numeric"
});

然后像这样初始化插件:

$('table').tablesorter({
    headers: {
            5: { sorter: 'date' }
        }
});

更新:为获得最佳效果,请确保您返回有效日期:

$.tablesorter.addParser({
    id: "date",
    is: function (s) {
        return false;
    },
    format: function (s, table) {
        var date = new Date(s);
        return date instanceof Date && isFinite(date) ? date.getTime() : '';
    },
    type: "numeric"
});
于 2013-01-25T02:35:39.293 回答