gpt4 book ai didi

javascript - 使用 Jquery 和 HTML 按日期排序

转载 作者:搜寻专家 更新时间:2023-10-31 08:24:00 25 4
gpt4 key购买 nike

我正在尝试按日期对一些数据进行排序。数据实际上保存在 HTML 中的 div --> span 下。但是,我已经实现了以下功能,但出于某种原因,它并没有像我预期的那样正确地工作。

case "Import_Date_asc":
var elems = $.makeArray($review_items);

elems.sort(function(a, b) {
var a_date = $(a).find('.panel-heading .data-source').text(),
b_date = $(b).find('.panel-heading .data-source').text();

a_date = a_date.split(' / ');
a_date = a_date[1].split(' UTC');

b_date = b_date.split(' / ');
b_date = b_date[1].split(' UTC');

console.log(a_date[0], b_date[0]);

//return new Date(a_date[0]) > new Date(b_date[0]);
return Date.parse(a_date[0]) > Date.parse(b_date[0]);
});

$review_container.html(elems);

break;

case "Import_Date_desc":
var elems = $.makeArray($review_items);

elems.sort(function(a, b) {
var a_date = $(a).find('.panel-heading .data-source').text(),
b_date = $(b).find('.panel-heading .data-source').text();

a_date = a_date.split(' / ');
a_date = a_date[1].split(' UTC');

b_date = b_date.split(' / ');
b_date = b_date[1].split(' UTC');

console.log(a_date[0], b_date[0]);

//return new Date(a_date[0]) < new Date(b_date[0]);
return Date.parse(a_date[0]) < Date.parse(b_date[0]);
});

$review_container.html(elems);

break;

html 看起来像这样:

<div class="review-item panel panel-primary" data-ldn="8643" data-pse="43460">
<div class="panel-heading">
<span class="data-title">Dom(i23)</span>
<span class="data-source pull-right">Import / 2017-12-07 14:35 UTC</span>
</div></div>

如果你知道我在这里做错了什么,请多多关照。

最佳答案

似乎解析无法转换您的日期。但是,我相信使用 localCompare 会更好

case "Import_Date_asc":
var elems = $.makeArray($review_items);

elems.sort(function(a, b) {
var a_date = $(a).find('.panel-heading .data-source').text(),
b_date = $(b).find('.panel-heading .data-source').text();

a_date = a_date.split(' / ');
a_date = a_date[1].split(' UTC');
a_date = a_date[0];
a_date = a_date.replace('-', '');
a_date = a_date.replace('-', '');
a_date = a_date.replace(' ', '');
a_date = a_date.replace(':', '');

b_date = b_date.split(' / ');
b_date = b_date[1].split(' UTC');
b_date = b_date[0];
b_date = b_date.replace('-', '');
b_date = b_date.replace('-', '');
b_date = b_date.replace(' ', '');
b_date = b_date.replace(':', '');

return a_date.localeCompare(b_date);
});

$review_container.html(elems);

break;

case "Import_Date_desc":
var elems = $.makeArray($review_items);

elems.sort(function(a, b) {
var a_date = $(a).find('.panel-heading .data-source').text(),
b_date = $(b).find('.panel-heading .data-source').text();

a_date = a_date.split(' / ');
a_date = a_date[1].split(' UTC');
a_date = a_date[0];
a_date = a_date.replace('-', '');
a_date = a_date.replace('-', '');
a_date = a_date.replace(' ', '');
a_date = a_date.replace(':', '');

b_date = b_date.split(' / ');
b_date = b_date[1].split(' UTC');
b_date = b_date[0];
b_date = b_date.replace('-', '');
b_date = b_date.replace('-', '');
b_date = b_date.replace(' ', '');
b_date = b_date.replace(':', '');

return a_date.localeCompare(b_date) * -1;
});

$review_container.html(elems);

break;

试试这个代码,我相信它应该可以工作。它适用于我的测试。另请查看 [localeCompare()][1] 方法。

关于javascript - 使用 Jquery 和 HTML 按日期排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47719122/

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