列上的Jquery tablesorter与英国日期和时间

时间:2014-01-27 23:31:12

标签: jquery regex tablesorter

我正在使用tablesorter为某些html表添加排序但是我有一个列有英国日期和时间的列,它似乎在日期部分排序好但忽略了时间。

数据:

27/01/2014 22:26:02
27/01/2014 22:26:01
27/01/2014 22:26:03

HTML:

<tr>
    <th>Document</th>
    <th class="headerSortUp {sorter:'ukLongDate'}">Creation Date</th>
 </tr>  

我知道您可以添加自定义解析器,如:

ts.addParser({
    id: "ukLongDate",
    is: function (s) {
        return s.match(new RegExp(/^[A-Za-z]{3,10}\.? [0-9]{1,2}, ([0-9]{4}|'?[0-9]{2}) (([0-2]?[0-9]:[0-5][0-9])|([0-1]?[0-9]:[0-5][0-9]\s(AM|PM)))$/));
    }, format: function (s) {
        return $.tablesorter.formatFloat(new Date(s).getTime());
    }, type: "numeric"
});

正则表达式应该是什么?

1 个答案:

答案 0 :(得分:2)

尝试使用此解析器(demo):

$.tablesorter.addParser({
    id: "ukLongDate",
    is: function (s) {
        return false;
    }, format: function (s) {
        s = s.replace(/(0?[1-9]|[12][0-9]|3[01])\/(0?[1-9]|1[012])\/(\d{4})/, '$2/$1/$3');
        return $.tablesorter.formatFloat(new Date(s).getTime());
    }, type: "numeric"
});

$('table').tablesorter({
    headers : {
        2 : { sorter: 'ukLongDate' }
    }
});

如果您碰巧丢失了元数据插件,我没有使用问题<th class="{sorter:'ukLongDate'}">中的元数据方法。