Javascript JQuery表分类器不使用';无法使用日期范围字符串

Javascript JQuery表分类器不使用';无法使用日期范围字符串,javascript,jquery,html,tablesorter,string-comparison,Javascript,Jquery,Html,Tablesorter,String Comparison,我的表格中有一列显示了以下文本的变化,其中日期不同 Requested Statement 7/1/2014 - 9/16/2014 tablesorter无法正确排序,正如您在这个提琴中看到的那样。单击时,第一列将进行排序,但第二列不会。我还包括了一些字符串比较的表格,以显示javascript正确地识别了它们应该遵循的顺序 我尝试添加一个自定义的textextextraction函数,但仍然得到相同的结果 tablesorter似乎在做一些与简单的或不同的事情。问题是第二列(“请求的语句

我的表格中有一列显示了以下文本的变化,其中日期不同

Requested Statement 7/1/2014 - 9/16/2014
tablesorter无法正确排序,正如您在这个提琴中看到的那样。单击时,第一列将进行排序,但第二列不会。我还包括了一些字符串比较的表格,以显示javascript正确地识别了它们应该遵循的顺序

我尝试添加一个自定义的
textextextraction
函数,但仍然得到相同的结果


tablesorter似乎在做一些与简单的
不同的事情。问题是第二列(“请求的语句…”)被检测为日期列,解析器试图将整个字符串转换为日期;这是无效的

这是。结果是:

// start with "Requested Statement 7/1/2014 - 9/16/2014"
"Requested Statement 2014/7/1 / 9/16/2014" => 0
因此,您需要使用
textextextraction
函数来确定日期():

请注意,字符串中的第二个日期完全被忽略。如果您想让第二个日期变得重要,请尝试以下代码():

$('table').tablesorter({
    textExtraction : function(node){
        var txt = $(node).text();
        if (/request/i.test(txt)) {
            // return the 3rd block (first date in range)
            txt = txt.split(' ')[2];
        }
        return txt;
    }
});
$('table').tablesorter({
    textExtraction : function(node){
        var d1, d2,
            txt = $(node).text();
        if (/request/i.test(txt)) {
            // return the 3rd block (first date in range)
            txt = txt.split(' ');
            d1 = $.tablesorter.formatFloat(new Date(txt[2]).getTime());
            d2 = $.tablesorter.formatFloat(new Date(txt[4]).getTime());
            // add the times together - there is likely a better
            // method but this works in this situation
            txt = d1 + d2;
        }
        return txt;
    }
});