我目前正在使用此处找到的 JQuery Tablesorter 插件:http ://www.tablesorter.com ,并且我遇到了包含日期和文本的列的问题。这是jsfiddle:
如果您单击名字字段标题,它不会排序,因为里面有一个随机日期。我尝试强制进行文本排序,但它不起作用。有人有想法么?
我目前正在使用此处找到的 JQuery Tablesorter 插件:http ://www.tablesorter.com ,并且我遇到了包含日期和文本的列的问题。这是jsfiddle:
如果您单击名字字段标题,它不会排序,因为里面有一个随机日期。我尝试强制进行文本排序,但它不起作用。有人有想法么?
找到了一个不太好的答案,但现在有效。
我删除了这个解析器:
ts.addParser({
id: "shortDate",
is: function (s) {
return /\d{1,2}[\/\-]\d{1,2}[\/\-]\d{2,4}/.test(s);
}, format: function (s, table) {
var c = table.config;
s = s.replace(/\-/g, "/");
if (c.dateFormat == "us") {
// reformat the string in ISO format
s = s.replace(/(\d{1,2})[\/\-](\d{1,2})[\/\-](\d{4})/, "$3/$1/$2");
} else if (c.dateFormat == "uk") {
// reformat the string in ISO format
s = s.replace(/(\d{1,2})[\/\-](\d{1,2})[\/\-](\d{4})/, "$3/$2/$1");
} else if (c.dateFormat == "dd/mm/yy" || c.dateFormat == "dd-mm-yy") {
s = s.replace(/(\d{1,2})[\/\-](\d{1,2})[\/\-](\d{2})/, "$1/$2/$3");
}
return $.tablesorter.formatFloat(new Date(s).getTime());
}, type: "numeric"
});
这似乎解决了我的问题,因为它完全停止了日期解析器的执行。这可能会在其他情况下导致问题,但目前似乎适用于我的页面。如果人们有其他答案,我仍然愿意接受。