jQuery Tablesorter 自定义日期解析器

jQuery Tablesorter Custom Date Parser

我在论坛上搜索过,似乎找不到与我相似的情况,所以我想知道这里是否有人可以提供帮助。

我有一个 dynamically-generated table,其中包含一个 'release dates' 列,我想按日期排序。问题在于此列中的日期值前面是括号中的版本数。

此列中的可能值将是完整的日期和时间戳,带有 AM/PM 指示符,前面是数字或版本,或者单词 'None.' 例如,这些是来自的一些实际值数据 table:

None
[1] 1/24/2008 5:53:35 PM    
[1] 7/31/2012 11:32:50 AM   
[10] 3/29/2013 2:59:04 PM   
[3] 12/17/2014 2:43:27 PM   
[1] 1/9/2015 6:48:31 PM
[4] 1/9/2015 7:02:09 PM 
[4] 1/30/2015 11:25:20 AM   
[2] 12/27/2016 12:32:02 PM  
[2] 11/16/2017 11:04:22 AM

由于日期前的附加字符,built-in 排序无法正常工作。我在我的代码中添加了以下参数以将自定义解析器分配给该列,这是 table 中列出的第三个:

headers: 2: { sorter: 'DateParser' }

而且,这是我的解析器删除前导字符的代码,只留下日期和时间:

$.tablesorter.addParser({
    id: 'DateParser',
    is: function(s) {
        return false;
    },
    format: function(s) {
        var datesort;
        if (s != "None") {
            var livereleasedate = s.split(']');
            var datetime = livereleasedate[1].trim();
            console.log(datetime);
            datesort = datetime;
        }
        else {
            datesort = s;
        }
        return datesort;
    },
    type: 'text'
});

不幸的是,这仍然不能正常工作。月份和日期值似乎按正确顺序排序,但字符串的其余部分不是。当我单击 header 列对值进行排序时,我得到了这个:

[1] 1/9/2015 6:48:31 PM
[4] 1/9/2015 7:02:09 PM
[1] 1/24/2008 5:53:35 PM
[4] 1/30/2015 11:25:20 AM
[10] 3/29/2013 2:59:04 PM
[1] 7/31/2012 11:32:50 AM
[2] 11/16/2017 11:04:22 AM
[3] 12/17/2014 2:43:27 PM
[2] 12/27/2016 12:32:02 PM
None

关于如何解决这个问题有什么建议吗?

提前致谢。

尝试 extractMMDDYYYY parser-date-extract.js file that is part of my fork of tablesorter. This parser should work with the original tablesorter... demo

中可用的解析器
$(function() {
  $('table').tablesorter({
    theme: 'blue',
    headers: {
      0: { sorter: "extractMMDDYYYY" }
    }
  });
});