猿问

使用 jQuery table-sorter 插件对日期列进行排序的问题

我为我的表实现了 jQuery TableSorter 附加组件并且一切正常,除了包含以下格式的特定列:HH:mm, dd.MM,例如09:45, 15.11或15:48, 16.11.


正如我之前对这个插件所做的那样,我在 javascript 文件中尝试了这个,它对表格进行了排序:


$(function() 

    $(".my-table").tablesorter({

      sortList: [[1,0]], // sorting on the second column

      dateFormat : "HH:mm, dd.MM"

    });

  });

但是,它只按 排序HH:mm,这会导致错误的条目(因为它忽略了日期)。是否有另一个特定的日期字符串可以使用它,因为我无法真正更改它,或者有没有办法编写我自己的自定义解析器并使用插件实现它?谢谢!


POPMUISE
浏览 284回答 2
2回答

潇潇雨雨

如果有人偶然发现这种特定的日期格式,我就找到了解决方案。事实证明,TableSorter 插件允许添加自定义解析器,您可以满足自己的需要。关于这里的更多信息 - https://mottie.github.io/tablesorter/docs/example-parsers.html。在这种特定情况下,它看起来像这样,现在可以工作并且该列是可排序的:$.tablesorter.addParser({        id: 'custom_date_parser',        // Auto-detection        is: function(date) {            return false;        },        // Normalize data and allow sorting for this specific type        format: function(date) {            // get current year            var current_year = new Date().getFullYear()            // obtain date values from column            // current format HH:mm, dd.MM            var hour = date.slice(0, 2);            var minutes = date.slice(3, 5);            var day = date.slice(7, 9);            var month = date.slice(10, 12);            // convert to date object            return date = new Date(current_year, month - 1, day, hour - 1, minutes)        },        parsed: false,        // Type of sorting to use        type: 'numeric'    });// Perform the sorting    $("#table-name").tablesorter({        // apply custom parser only to the second column        headers: {            1: {                sorter: 'custom_date_parser'            }        }    });

慕无忌1623718

该dateFormat选项仅允许 3 个设置:("mmddyyyy"默认)"ddmmyyyy"和"yyyymmdd".在这种情况下,您需要添加一个自定义列解析器- 请参阅此演示,但它只有一个用于 Sugar.js 库的示例。特别是,确保加载和使用这个包含 Sugar.js 和 Date.js 库接口的解析器。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答