Jquery 表排序器-日期问题
我知道这方面有一些问题,但我似乎无法解决我的问题 我正在将一个.csv文件加载到tablesorter中,但我的一列是dates(2009年12月23日)。但它们分别是12月2日、23日、3日和31日 有人知道解决办法吗,这是底部的桌子。非常感谢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
<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'
}
}
});
});