0
好吧我有一個JavaScript代碼,在HTML表中按日期排序行。 現在我所做的是將日期轉換爲時間戳,並通過本地sort()javascript函數對它們進行排序,但似乎排序不正確。問題是什麼?排序日期與時間戳不正確?通過JavaScript在表中排序日期
這裏是我迄今爲止
var asc = true;
function sortTable() {
var tbl = document.getElementById("mytable").tBodies[0];
var store = [];
for (var i = 0, len = tbl.rows.length; i < len; i++) {
var row = tbl.rows[i];
var rowdatedata = row.cells[1].textContent;
var rowdatesplit = rowdatedata.split('/');
var rowdatetimestamp = Math.round(new Date(parseInt(rowdatesplit[0]), parseInt(rowdatesplit[1]) - 1, parseInt(rowdatesplit[2]), 0, 0, 0).getTime() /1000);
if (!isNaN(rowdatetimestamp)) store.push([rowdatetimestamp, row]);
}
if (asc) {
store.sort(function(x, y) {
return x[0] - y[0];
});
document.getElementById('dateCol').textContent = 'Date ↑';
asc = false;
}
else {
store.sort(function(x, y) {
return y[0] - x[0];
});
document.getElementById('dateCol').textContent = 'Date ↓';
asc = true;
}
for (var i = 0, len = store.length; i < len; i++) {
var idno = i + 1;
store[i][1].cells[0].textContent = idno.toString();
tbl.appendChild(store[i][1]);
}
store = null;
}
http://jsfiddle.net/laupkram/kCxKn/
注意做到:只需點擊 「日期」 標題,它將排序
升序排序成績
ID Date ↑ Name
1 2012/08/15 Lerry
2 2012/03/16 Ansley
3 2012/05/18 Robinson
4 2012/10/05 Mp
降序訂購結果
ID Date ↓ Name
1 2012/10/05 Mp
2 2012/05/18 Robinson
3 2012/03/16 Ansley
4 2012/08/15 Lerry
看起來不錯,使用的日期格式去年/日/月。我寧願將日期格式設置爲年 - 月 - 日,以避免混淆。 – Adder
它真的不能正常工作..它不按正確的順序排序 –
日期在您提供的jsfiddle中爲我正確排序。排序問題是什麼? – mccannf