使用相对日期列的Tablesorter排序表

时间:2014-10-13 06:26:18

标签: jquery tablesorter

如何使用tablesorter以便根据具有相对日期的列对表进行排序。 例如。: 我有类似的东西:

2天前
5天前 10天前 1周前 3周前

目前的排序给出了:

10天前 1周前 2天前 3周前 5天前

期望的输出:

2天前
5天前 10天前 1周前 3周前

PS:我是jQuery的新手。

1 个答案:

答案 0 :(得分:2)

您可以使用其中一个数据库,例如sugardatejs

This demo使用sugar库对具有该格式的列进行排序。

Get the parsers from here

/*! Sugar (https://sugarjs.com/docs/#/DateParsing)
* demo: http://jsfiddle.net/Mottie/7z0ss5xn/
*/
$.tablesorter.addParser({
    id: "sugar",
    is: function() {
        return false;
    },
    format: function(s) {
        // Add support for sugar v2.0+
        var create = Date.create || Sugar.Date.create,
            date = create ? create(s) : s ? new Date(s) : s;
        return date instanceof Date && isFinite(date) ? date.getTime() : s;
    },
    type: "numeric"
});

/*! Datejs (http://www.datejs.com/)
* demo: http://jsfiddle.net/Mottie/zge0L2u6/
*/
$.tablesorter.addParser({
    id: "datejs",
    is: function() {
        return false;
    },
    format: function(s) {
        var date = Date.parse ? Date.parse(s) : s ? new Date(s) : s;
        return date instanceof Date && isFinite(date) ? date.getTime() : s;
    },
    type: "numeric"
});