gpt4 book ai didi

用于 MM.DD.YYYY HH :MI AM format 中日期时间的 jQuery 表排序器解析器

转载 作者:行者123 更新时间:2023-12-01 06:57:23 25 4
gpt4 key购买 nike

我有一个 4 列表,其中第二列是日期列,格式如下“mm.dd.yyyy hh:mi am”。默认表排序器不能正确按日期列排序。我必须在表排序器中编写自己的解析器,但它仍然不适合我。我不确定使用的正则表达式是否正确,是否有人可以指出我下面代码中的错误?我将非常感谢您的帮助。

ts.addParser(
{
id: "srsDate",
is: function (s) {
return /\d{1,2}\.\d{1,2}\.\d{1,4} \d{1,2}:\d{1,2}\s(am|pm)/.test(s);
},
format: function (s) {
s = s.replace(/\./g, " ");
s = s.replace(/\:/g, " ");
s = s.replace("am", "0");
s = s.replace("pm", "1");
s = s.split(" ");
return $.tablesorter.formatFloat(new Date(s[0], s[1], s[2], s[3], s[4], s[5]).getTime() + parseInt(s[6]));
},
type: "numeric"
});

我这样调用它:

myapp.Sort = function () {
$(myapp.config.tblHistory).tablesorter({ headers: { 1: { sorter: 'srsDate'} }, sortList: [[0, 0]] });
}

我引用了:date Sorting Problem with Jquery Tablesorter构建新的解析器。排序的结果不起作用。它根本不对数据进行排序。

最佳答案

我自己不使用tablesorter,但是您是否考虑过使用Date.parse(datestring)

你的函数可以是:

ts.addParser({
id: "srsDate",
is: function (s) {
return /\d{1,2}\.\d{1,2}\.\d{1,4} \d{1,2}:\d{1,2}\s(am|pm)/.test(s);
},
format: function (s) {
return Date.parse(s);
},
type: "numeric"
});

这将返回该日期作为 Unix 时间戳(以毫秒为单位)。

如果您想以秒数形式返回它,只需将 Date.parse(s) 的结果除以 1000:

function: function (s) {
return (Date.parse(s) / 1000);
}

尽管如果您只是对数据进行排序,这两种方法都可以。

关于用于 MM.DD.YYYY HH :MI AM format 中日期时间的 jQuery 表排序器解析器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7561026/

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