如何根据日期字段对所有列进行排序
How to sort all the columns based on Date field
我有一个包含不同行的 table。现在我需要根据提交日期对数据进行排序。最新日期应该在第一位。我怎样才能在 javascript 中开始这个呢?日期格式为“2017-09-18T22:37:58.95”。有什么帮助吗?
示例 table 格式为:
这是从数据库中获取数据的代码:
function BindTable(startdate, enddate) {
var url = //weburl....
$('#TicketTable > tbody > tr ').remove();
$.ajax({
url: url,
type: "Get",
dataType: "json",
data: {
Year: startdate,
Rtype: enddate,
Filtertxt: selPhaseNumber
},
crossDomain: true,
success: function(data) {
var rowCount = data.length;
$('#num_results span').text(rowCount);
if (data.length > 0) {
var tr;
var totalOFTotal = 0;
for (var i = 0; i < data.length; i++) {
tr = $('<tr/>');
tr.append("<td>" + data[i].Executioncyclename + "</td>");
tr.append("<td>" + data[i].Created_by + "</td>");
tr.append("<td>" + data[i].TaskEndDt_WW + "</td>");
tr.append("<td>" + data[i].Total_amt + "</td>");
tr.append("<td>" + data[i].Status + "</td>");
tr.append("<td>" + data[i].SubmittedDate + "</td>");
$('#TicketTable').append(tr);
}
tr = $('<tr style="font-weight: bold; background-color: white" />');
tr.append("<td></td>");
tr.append("<td></td>");
tr.append("<td></td>");
tr.append("<td></td>");
tr.append("<td></td>");
tr.append("<td></td>");
$('#TicketTable').append(tr);
} else {
....... //else part
}
}
});
}
您可以将其添加到群发中:
var a =["2017-09-18T22:37:58.95", "2017-11-18T22:37:58.95", "2017-10-18T22:37:58.95", "2017-08-18T22:37:58.95"]
然后排序:
a.sort()
然后反转:
a = a.reverse()
您可以像这样在 for
循环之前排序:
data.sort(function(a,b) {
return new Date(b.SubmittedDate) - new Date(a.SubmittedDate);
}
)
我想你可以在 javascript 数组中使用 SORT
函数。 Try look at this answer.
在排序函数中,比较日期字段和 return 1
如果 a.SubmittedDate
较小,否则 -1
或 0
如果相等。
像这样。
...
var tr;
var totalOFTotal = 0;
data.sort(function(a, b) {
return (a.SubmittedDate < b.SubmittedDate) ? 1 : ((a.SubmittedDate > b.SubmittedDate) ? -1 : 0)
});
for (var i = 0; i < data.length; i++) {
tr = $('<tr/>');
tr.append("<td>" + data[i].Executioncyclename + "</td>");
tr.append("<td>" + data[i].Created_by + "</td>");
tr.append("<td>" + data[i].TaskEndDt_WW + "</td>");
tr.append("<td>" + data[i].Total_amt + "</td>");
tr.append("<td>" + data[i].Status + "</td>");
tr.append("<td>" + data[i].SubmittedDate + "</td>");
$('#TicketTable').append(tr);
}
...
希望对您有所帮助。
我有一个包含不同行的 table。现在我需要根据提交日期对数据进行排序。最新日期应该在第一位。我怎样才能在 javascript 中开始这个呢?日期格式为“2017-09-18T22:37:58.95”。有什么帮助吗?
示例 table 格式为:
这是从数据库中获取数据的代码:
function BindTable(startdate, enddate) {
var url = //weburl....
$('#TicketTable > tbody > tr ').remove();
$.ajax({
url: url,
type: "Get",
dataType: "json",
data: {
Year: startdate,
Rtype: enddate,
Filtertxt: selPhaseNumber
},
crossDomain: true,
success: function(data) {
var rowCount = data.length;
$('#num_results span').text(rowCount);
if (data.length > 0) {
var tr;
var totalOFTotal = 0;
for (var i = 0; i < data.length; i++) {
tr = $('<tr/>');
tr.append("<td>" + data[i].Executioncyclename + "</td>");
tr.append("<td>" + data[i].Created_by + "</td>");
tr.append("<td>" + data[i].TaskEndDt_WW + "</td>");
tr.append("<td>" + data[i].Total_amt + "</td>");
tr.append("<td>" + data[i].Status + "</td>");
tr.append("<td>" + data[i].SubmittedDate + "</td>");
$('#TicketTable').append(tr);
}
tr = $('<tr style="font-weight: bold; background-color: white" />');
tr.append("<td></td>");
tr.append("<td></td>");
tr.append("<td></td>");
tr.append("<td></td>");
tr.append("<td></td>");
tr.append("<td></td>");
$('#TicketTable').append(tr);
} else {
....... //else part
}
}
});
}
您可以将其添加到群发中:
var a =["2017-09-18T22:37:58.95", "2017-11-18T22:37:58.95", "2017-10-18T22:37:58.95", "2017-08-18T22:37:58.95"]
然后排序:
a.sort()
然后反转:
a = a.reverse()
您可以像这样在 for
循环之前排序:
data.sort(function(a,b) {
return new Date(b.SubmittedDate) - new Date(a.SubmittedDate);
}
)
我想你可以在 javascript 数组中使用 SORT
函数。 Try look at this answer.
在排序函数中,比较日期字段和 return 1
如果 a.SubmittedDate
较小,否则 -1
或 0
如果相等。
像这样。
...
var tr;
var totalOFTotal = 0;
data.sort(function(a, b) {
return (a.SubmittedDate < b.SubmittedDate) ? 1 : ((a.SubmittedDate > b.SubmittedDate) ? -1 : 0)
});
for (var i = 0; i < data.length; i++) {
tr = $('<tr/>');
tr.append("<td>" + data[i].Executioncyclename + "</td>");
tr.append("<td>" + data[i].Created_by + "</td>");
tr.append("<td>" + data[i].TaskEndDt_WW + "</td>");
tr.append("<td>" + data[i].Total_amt + "</td>");
tr.append("<td>" + data[i].Status + "</td>");
tr.append("<td>" + data[i].SubmittedDate + "</td>");
$('#TicketTable').append(tr);
}
...
希望对您有所帮助。