Jquery Tablesorter的日期排序问题

前端之家收集整理的这篇文章主要介绍了Jquery Tablesorter的日期排序问题前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试排序一个像2009-12-17 23:59:59.0这样的列的表。
我在下面使用排序
$(document).ready(function() 
        { 
            $("#dataTable").tablesorter();  
        } 
    );

但它不适用于yyyy-mm-dd格式的日期。
任何人都可以建议如何应用此格式进行排序?

解决方法

正确的做法是为自定义格式添加自己的解析器。

检查这一点,以了解如何工作。

jQuery Tablesorter: Add your own parser

然后查看tablesorter源(搜索uslongdate,shortdate,然后观察日期格式的解析器如何在tablesorter内部完成。现在为您的特定日期格式构建一个类似的解析器。

jquery.tablesorter.js

这应该适合你的喜好

ts.addParser({
    id: "customDate",is: function(s) {
        //return false;
        //use the above line if you don't want table sorter to auto detected this parser
        //else use the below line.
        //attention: doesn't check for invalid stuff
        //2009-77-77 77:77:77.0 would also be matched
        //if that doesn't suit you alter the regex to be more restrictive
        return /\d{1,4}-\d{1,2}-\d{1,2} \d{1,2}:\d{1,2}\.\d+/.test(s);
    },format: function(s) {
        s = s.replace(/\-/g," ");
        s = s.replace(/:/g," ");
        s = s.replace(/\./g," ");
        s = s.split(" ");
        return $.tablesorter.formatFloat(new Date(s[0],s[1]-1,s[2],s[3],s[4],s[5]).getTime()+parseInt(s[6]));
    },type: "numeric"
});

现在只需将其应用于您具有此格式的列(例如,假定您的自定义日期所在的列位于第7列。(6表示列7,因为列的数组为零)

$(function() {
    $("table").tablesorter({
        headers: {
            6: { sorter:'customDate' }
        }
    });
});
原文链接:https://www.f2er.com/jquery/182835.html

猜你在找的jQuery相关文章