Jquery 表排序器-日期问题

Jquery 表排序器-日期问题,jquery,tablesorter,Jquery,Tablesorter,我知道这方面有一些问题,但我似乎无法解决我的问题 我正在将一个.csv文件加载到tablesorter中,但我的一列是dates(2009年12月23日)。但它们分别是12月2日、23日、3日和31日 有人知道解决办法吗,这是底部的桌子。非常感谢 <script type="text/javascript" charset="utf-8"> $(document).ready(function() { $("#tablesorter-demo2

我知道这方面有一些问题,但我似乎无法解决我的问题

我正在将一个.csv文件加载到tablesorter中,但我的一列是dates(2009年12月23日)。但它们分别是12月2日、23日、3日和31日

有人知道解决办法吗,这是底部的桌子。非常感谢

<script type="text/javascript" charset="utf-8">
  $(document).ready(function() 
      { 
          $("#tablesorter-demo2").tablesorter({ widgets: ['zebra'] });
      } 
  );
 </script>
“r”); while(($data=fgetcsv($handle,1000,“,”)!==FALSE) { $num=计数($data); $row++

                if ($row == 2)
               {
                   echo "<thead>\n<tr>\n";

                   echo "<th class=\"header\">" . $data[1] .
if($row==2)
{
回显“\n\n”;
回显“%$data[1]。
“\n”;//名称 回显“.$data[0]”。\n“;//符号 echo“$data[2]。 “\n”//买卖 echo“$data[3]。 “\n”;//日期 echo“$data[4]。 “\n”;//共享 echo“.$data[5]”。\n“;//价格 echo“$data[6]”。\n“//现金值

                   echo "</tr>\n</thead>\n<tbody>";
               }

               else
               {
                   echo "<tr class=\"even\"";
                   echo ">\n";
                   echo "<td>" . $data[1] . "</td>\n";
    echo "<td>" . $data[0] . "</td>\n";
    echo "<td>" . $data[2] . "</td>\n";
    echo "<td>" . $data[3] . "</td>\n";
    echo "<td>" . $data[4] . "</td>\n";
    echo "<td>C$ " . $data[5] . "</td>\n";
    echo "<td>C$ " . $data[6] . "</td>\n";

                   $transactions = $row - 3;
 }
}
fclose($handle);
?>
            </tbody>
</table>
echo“\n\n”;
}
其他的
{
回音“\n”;
回显“.”数据[1]。“\n”;
回显“.”数据[0]。“\n”;
回显“.”数据[2]。“\n”;
回显“%$data[3]”。\n;
回显“%$data[4]”。\n;
回显“C$”$数据[5]。“\n”;
回显“C$”$数据[6]。“\n”;
$transactions=$row-3;
}
}
fclose($handle);
?>

您应该指定列的类型。否则将按文本排序。您可以通过指定
分拣机
参数来完成:

<table>
<thead>
    <tr>
        <th>Id</th>
        ... other columns ....
        <th class="{sorter: 'isoDate'}">Date</th>
</tr>           
</thead>
<tbody>
... table body ....

身份证件
... 其他栏目。。。。
日期
... 桌身。。。。

虽然我不确定您是否应该使用
isoDate
分拣机,但tablesorter还有另外两个分拣机:
usLongDate
shortDate
。您可以尝试使用其中的哪一个进行排序。

如果默认的日期排序选项都不起作用,请尝试使用并将日期转换为等效的毫秒表示形式进行排序

$.tablesorter.addParser({ 
    // set a unique id 
    id: 'dateMS', 
    is: function(s) { 
        // return false so this parser is not auto detected 
        return false; 
    }, 
    format: function(s) { 
        var d = Date.parse(s);
        if (isNaN(d)) {
           return -1;
        }
        return d;
    }, 
    // set type, either numeric or text 
    type: 'numeric' 
});     

$(function() { 
    $("table").tablesorter({ 
        headers: { 
            6: { 
                sorter:'dateMS' 
            } 
        } 
    }); 
}); 

它是基于字母数字(ASCII)值的排序,而不是基于日期值(它还将把11月放在10月之前)。您需要jquery将每个单元格解释为日期值,然后对它们进行相应的排序。如果它们的内置类型检测不起作用,则必须强制使用数据类型。有关更多信息,请参阅。

效果很好。我喜欢手动控制这些列。非常感谢!谢谢但是,禁用tablesorter中的内部自动检测也会起作用。他把我的数据当作文本阅读。
$.tablesorter.addParser({ 
    // set a unique id 
    id: 'dateMS', 
    is: function(s) { 
        // return false so this parser is not auto detected 
        return false; 
    }, 
    format: function(s) { 
        var d = Date.parse(s);
        if (isNaN(d)) {
           return -1;
        }
        return d;
    }, 
    // set type, either numeric or text 
    type: 'numeric' 
});     

$(function() { 
    $("table").tablesorter({ 
        headers: { 
            6: { 
                sorter:'dateMS' 
            } 
        } 
    }); 
});