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" }
}
});
});
我在论坛上搜索过,似乎找不到与我相似的情况,所以我想知道这里是否有人可以提供帮助。
我有一个 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" }
}
});
});