的jQuery的tablesorter与我想要使用jQuery的tablesorter排序如下格式的日期列特定日期

问题描述:

18:44:12 17/06/2012的jQuery的tablesorter与我想要使用jQuery的tablesorter排序如下格式的日期列特定日期

任何想法如何?

+0

这里是插件网站:http://tablesorter.com/docs/ – Ran

+0

插件文档展示了如何创建自定义排序解析器 – charlietfl

+0

以及如何为日期创建这种自定义排序解析器? – Ran

第一个问题是将日期文本解析为javascript Date object将识别的格式。一旦转换为日期,插件会将日期视为数字排序类型。这是您的格式的工作解析器。

DEMO:http://jsfiddle.net/H9u7C/1/

$.tablesorter.addParser({ 

    // set a unique id 
    id: 'changeToDate', 
    is: function(s) { 
     // return false so this parser is not auto detected 
     return false; 
    }, 

    format: function(s) { 
     var a = $.trim(s).split(' '); 
     var time = a[0]; 
     var dateParts = a[1].split('/'); 
     var dateText = [dateParts[1], dateParts[0], dateParts[2]].join('/') + ' ' + time; 
     var dateObj = new Date(dateText); 
     return dateObj; 

    }, 

    type: 'numeric' 
}); 

用法如下概述了自定义分析器演示的插件网站

http://tablesorter.com/docs/example-parsers.html

我有2.0的tablesorter同样的问题。 日期DD/MM/YY是错的线982 ...

s = s.replace(/(\d{1,2})[\/\-](\d{1,2})[\/\-](\d{2})/, "$1/$2/$3"); 

是错误的,正确的是

s = s.replace(/(\d{1,2})[\/\-](\d{1,2})[\/\-](\d{2})/, "$3/$2/$1"); 

我ts.addParser({ID: “shortDate” ...是:

ts.addParser({ 
     id: "shortDate", 
     is: function (s) { 
      return /\d{1,2}[\/\-]\d{1,2}[\/\-]\d{2,4}/.test(s); 
     }, format: function (s, table) { 
      var c = table.config; 
      s = s.replace(/\-/g, "/"); 
      if (c.dateFormat == "us") { 
       // reformat the string in ISO format 
       s = s.replace(/(\d{1,2})[\/\-](\d{1,2})[\/\-](\d{4})/, "$3/$1/$2"); 
      } else if (c.dateFormat == "uk") { 
       // reformat the string in ISO format 
       s = s.replace(/(\d{1,2})[\/\-](\d{1,2})[\/\-](\d{4})/, "$3/$2/$1"); 
      } else if (c.dateFormat == "dd/mm/yy" || c.dateFormat == "dd-mm-yy") { 
       s = s.replace(/(\d{1,2})[\/\-](\d{1,2})[\/\-](\d{2})/, "$3/$2/$1"); 
      } else if (c.dateFormat == "dd/mm/yyyy" || c.dateFormat == "dd-mm-yyyy") { 
       s = s.replace(/(\d{1,2})[\/\-](\d{1,2})[\/\-](\d{4})/, "$3/$2/$1"); 
      } 
      return $.tablesorter.formatFloat(new Date(s).getTime()); 
     }, type: "numeric" 
    }); 

我有加DD/MM/YYYY情况下,对于日期,我不知道... :(

你必须把日期格式:“DD/MM/Y yyy“作为参数。