gpt4 book ai didi

javascript - 使用 jquery tablesorter 排序日期/时间不正确

转载 作者:行者123 更新时间:2023-11-29 15:31:06 26 4
gpt4 key购买 nike

我正在使用插件 Tablesorter。我无法正确配置对其中一列进行排序。看起来像这样(天时分):

0d04h11m
4d22h26m
27d20h14m
0d09h50m
2d02h34m
1d11h02m

我尝试应用 {sorter:'digits'}

排序后:

4d22h26m
2d02h34m
27d20h14m
1d11h02m
0d09h50m
0d04h11m

这不是真正的排序,如果是两位数的天数。

我该如何解决这个问题?

最佳答案

您需要添加自己的解析器:

免责声明:只有当您的数据始终具有相同的格式时,以下内容才有效。否则,如果您可以得到 4d4d1h 之类的东西,您将需要另想办法。

$.tablesorter.addParser({
id: 'custom_sort_function',
is: function(s) {
return false;
},
format: function(s) {
return parseInt(s.replace(/\D/g, ''), 10); // '0d04h11m' --> '00411' --> 411
},
type: 'numeric'
});

然后你添加:

{sorter:'custom_sort_function'}

如需更多功能,see the docs .


编辑:

这个函数会给你一个更安全的解析器:

format: function(s) {
var regexParser = /(?:([0-9]{1,2})d)?(?:([0-9]{1,2})h)?(?:([0-9]{1,2})m)?(?:([0-9]{1,2})s)?/;
var matches = regexParser.exec(s);
var days = parseInt(matches[1], 10) || 0;
var hours = parseInt(matches[2], 10) || 0;
var minutes = parseInt(matches[3], 10) || 0;
var seconds = parseInt(matches[4], 10) || 0;

return ((days * 24 + hours) * 60 + minutes) * 60 + seconds;
}

如果你添加这个:

is: function(s) {
return /^(?:([0-9]{1,2})d)?(?:([0-9]{1,2})h)?(?:([0-9]{1,2})m)?(?:([0-9]{1,2})s)?$/.test(s);
}

您将拥有一个自动解析器,因此您将不需要 {sorter: 'custom_sort_function'}

关于javascript - 使用 jquery tablesorter 排序日期/时间不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34811203/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com