Search code examples
javascriptjqueryhtmlcolumnsorting

How to sort all the columns based on Date field


I have a table with various rows. Now I need to sort the data based on Submitted Date. Latest Date should be first. How can I start this in javascript. The Date is in format "2017-09-18T22:37:58.95". Any help please? The sample table format is:enter image description here

Here is the code to get the data from 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
            }

        }
    });
}

Solution

  • You can sort before your for loop like this:

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