如何根据日期字段对所有列进行排序

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 较小,否则 -10 如果相等。
像这样。

...
                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);
                }
...

希望对您有所帮助。