我使用的延tablesorter插件进行排序表。在我列在我的表显示了日在毫米/日的格式。

<tr>
    <td class="col-name">...</td>
    ...
    <td rel="2000" class="col-dob">10/00</td>
    ...
</tr>
<tr>
    <td class="col-name">...</td>
    ...
    <td rel="1986" class="col-dob">11/86</td>
    ...
</tr>

注:

  • 每个单元都有一个独特的一类
  • 显示日期在毫米/日格式
  • 细胞与日收到该年以及

我。如下:

// add parser through the tablesorter addParser method
$.tablesorter.addParser({
        // set a unique id
        id: 'user-birthdate',
        is: function(s) {
                // return false so this parser is not auto detected
                return false;
        },
        format: function(s) {
                // format your data for normalization

                var dateSplit = s.split('/');

                if(2 !== dateSplit.length)
                        return 0;

                return new Date(dateSplit[1], dateSplit[0], 1);
        },
        // set type, either numeric or text
        type: 'numeric'
});

myClass.init = function() {
        $('.module .user table').tablesorter({
                sortList: [[0,0]],     
             widgets: ['zebra'],
                headers: {
                        5: {
                                sorter:'user-birthdate'
                        }
                }
        });
}

myClass.init();

我的问题是,tableSorter解释00为1900年而不是2000年,因此排序的数据是不正确的。

任何线索我如何能解决这个问题?我使用jQuery1.2.6和最新版本的tablesorter.

有帮助吗?

解决方案

该tablesorter文件往往是不无益的,我已经找到。它的 看起来 喜欢说很多,但是缺乏详细信息。

在这种情况下,它不会告诉你的签名功能用于分析程序。幸运的是,你可以读 该unminified码 找到它。

有我们发现的 metadata 分析器不会这样的:

format: function(s,table,cell) {

这意味着你可以调整格式的方法:

format: function(s, table, cell) {
    // format your data for normalization

    var dateSplit = s.split('/');
    var year = $(cell).attr('rel');

    if(2 !== dateSplit.length)
        return 0;

    return new Date(year, dateSplit[0], 1);
},

或至少是类似的。我还没有实际测试了这一点。但它至少应该非常接近。

其他提示

我想你会发现你的问题是新的构造和2位数的年串你是通过不歧: new Date(dateSplit[1], dateSplit[0], 1);

我不认为你可以(地)获得可靠的基础上s的分析程序。不s包含的全部内容的细胞?你可以做一些事情在的单元格中的数据,如: <span style="display : none">CC</span>MM/YY, ,条的标签,然后结合与CC YY在你的分析?

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top