Jquery Tablesorter的日期排序问题

发布时间:2020-01-12 发布网站:脚本之家
脚本之家收集整理的这篇文章主要介绍了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' }
        }
    });
});

总结

以上是脚本之家为你收集整理的Jquery Tablesorter的日期排序问题全部内容,希望文章能够帮你解决Jquery Tablesorter的日期排序问题所遇到的程序开发问题。

如果觉得脚本之家网站内容还不错,欢迎将脚本之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您喜欢交流学习经验,点击链接加入脚本之家官方QQ群:1065694478
脚本之家官方公众号

微信公众号搜索 “ 程序精选 ” ,选择关注!

微信公众号搜索 “ 程序精选 ”
精选程序员所需精品干货内容!