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

时间:2017-09-26 07:58:17

标签: javascript jquery html columnsorting

我有一张包含各种行的表格。现在我需要根据提交日期对数据进行排序。最新日期应该是第一个。我怎样才能在javascript中启动它。日期格式为" 2017-09-18T22:37:58.95"。有什么帮助吗? 样本表格式为:enter image description here

以下是从DB获取数据的代码:

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
            }

        }
    });
}

3 个答案:

答案 0 :(得分:1)

您可以在for循环之前进行排序:

data.sort(function(a,b) {
        return new Date(b.SubmittedDate) - new Date(a.SubmittedDate);
    }
)

答案 1 :(得分:0)

您可以将其添加到群发:

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() 

答案 2 :(得分:0)

我认为你可以在javascript数组中使用SORT函数。 Try look at this answer
在sort函数中,比较日期字段并在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);
                }
...

希望得到这个帮助。