我正在使用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"
});
正则表达式应该是什么?
答案 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'}">
中的元数据方法。