Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript-对HTML表进行排序(带有包含数据和时间的列)_Javascript_Html - Fatal编程技术网

Javascript-对HTML表进行排序(带有包含数据和时间的列)

Javascript-对HTML表进行排序(带有包含数据和时间的列),javascript,html,Javascript,Html,我有一个表,可以按升序/降序排序。当我单击列名时,我会按照W3中的示例进行操作 但这不是正确的排序日期(2019年1月6日上午8:15:00) 您是否有其他建议或代码添加到w3schools示例中。w3schools示例比较了两个字符串。因此,它按字母顺序而不是时间顺序比较这两个日期 if (x.innerHTML.toLowerCase() > y.innerHTML.toLowerCase()) 您需要将值转换为日期并比较日期值 相关部分: x = rows[i].getEleme

我有一个表,可以按升序/降序排序。当我单击列名时,我会按照W3中的示例进行操作

但这不是正确的排序日期(2019年1月6日上午8:15:00)


您是否有其他建议或代码添加到w3schools示例中。

w3schools示例比较了两个字符串。因此,它按字母顺序而不是时间顺序比较这两个日期

if (x.innerHTML.toLowerCase() > y.innerHTML.toLowerCase())
您需要将值转换为日期并比较日期值

相关部分:

x = rows[i].getElementsByTagName("TD")[0];
y = rows[i + 1].getElementsByTagName("TD")[0];

var date1 = new Date(x.innerText);
var date2 = new Date(y.innerText);

if (date1 > date2) {
工作示例(基于):


桌子{
边界间距:0;
宽度:100%;
边框:1px实心#ddd;
}
th,td{
文本对齐:左对齐;
填充:16px;
}
tr:n个孩子(偶数){
背景色:#F2F2
}
单击按钮按名称按字母顺序对表格进行排序:

分类

名称 国家 2019年6月1日上午8:15:00 瑞典 2019年6月1日上午6:15:00 英国 2019年6月1日凌晨3:15:30 德国 2019年6月1日上午8:15:00 德国 2019年6月1日晚上8:15:00 意大利 2019年6月1日上午8:15:00 法国 2019年6月1日下午4:15:00 英国 2019年6月2日晚上8:15:30 加拿大 函数sortTable(){ var表,行,切换,i,x,y,shouldSwitch; table=document.getElementById(“myTable”); 切换=真; /*做一个循环,循环将持续到 未进行任何切换:*/ while(切换){ //首先说:未进行任何切换: 切换=错误; 行=表。行; /*循环遍历所有表行(除 首先,它包含表标题):*/ 对于(i=1;i<(rows.length-1);i++){ //首先说,不应进行切换: shouldSwitch=false; /*获取要比较的两个元素, 一个来自当前行,另一个来自下一行:*/ x=行[i].getElementsByTagName(“TD”)[0]; y=行[i+1].getElementsByTagName(“TD”)[0]; var date1=新日期(x.innerText); var date2=新日期(y.innerText); //检查两行是否应切换位置: 如果(日期1>日期2){ //如果是,标记为开关并断开回路: shouldSwitch=true; 打破 } } 如果(应切换){ /*如果开关已被标记,则进行更换 并标记开关已完成:*/ 行[i].parentNode.insertBefore(行[i+1],行[i]); 切换=真; } } }
请在问题中包含与问题相关的所有代码。请举例说明你所拥有的和你所尝试过的。