该表有几列,包括第一列包含自定义日期格式(dd-mm-yyyy HH:MM:SS) e.g
<tr>
<td>14-05-2012 13:57:04</td>
<td>MTUPTTC01V4.3_E2E-LoadBalancer-1336992891.jtl</td>
<td>14-05-2012 13:10:03</td>
<td>14-05-2012 13:56:38</td>
<td>00:46:35</td>
<td>400</td>
<td>152328</td>
<td>2494</td>
<td>1.64%</td>
<td><a href="2012-05-14_13_56_52">Results</a></td>
</tr>
我正在使用以下自定义解析器,但它似乎无法正常工作。
$.tablesorter.addParser({
id: 'jmeterDate',
is: function(s) {
return false;
},
format: function(s) {
var date = s.match(/^(\d{2})-(\d{2})-(\d{4})[ ](\d{2}):(\d{2}):(\d{2})$/);
var d = date[1];
var m = date[2];
var y = date[3];
var H = date[4];
var M = date[5];
var S = date[6];
var MS = 0;
//return '' + y + m + d;
return new Date(y, m, d, H, M, S, MS).getTime();
},
type: 'Numeric'
});
$("#tablesorter-table").tablesorter({
headers: {
0: {
sorter: 'jmeterDate'
}
}
});
请参阅以下链接以获取完整示例
答案 0 :(得分:1)
我已经解决了问题,它不是jQuery或自定义tablesorter,它实际上是Table内容本身。一些日期的长度不是正则表达式的预期,例如
04-05-2012 13:7:1
注意7和1,下面的正则表达式至少需要2位数。
s.match(/ ^(\ d {2}) - (\ d {2}) - (\ d {4}):( \ d {2}):( \ d {2})$ / )
FIX:
s.match(/ ^(\ d {1,2}) - (\ d {1,2}) - (\ d {4}):( \ d {1,2}):( \ d \ n {1,2})$ /)
现在接受长度为1或2的数字