Jaydeep Shah Ответов: 1

Сортировка массива в ajax jquery


я должен отобразить историю чатов. у меня есть идентификатор, имя,дата(datetime) и сообщение.

но мне нужно отсортировать данные по дате и времени.
мой текущий результат в точности обратный

пример
msg 11: 43 pm
msg 11:41 pm
msg 11: 40 pm

см. пример: первая запись-это requird at last; я имею в виду в обратном порядке.

Что я уже пробовал:

function list() {
    debugger;
    $.ajax({

        url: "ListUsermsg",
        type: "POST",
        success: function (result) {  //if this result is sort accordint //date and time then my issue will solve. in result each array contain id,uname,datetime,msg,photo of value.

            $.each(result, function (Index, item) {
               
                var data = '' +
               ' ' + item.uname + ' ' +
                ' ' + item.time + ' ' +
                ' ' + item.msg +'</td' > +
                ' ' + item.photo +' ' +
                ' ' 
                $("#chathistory").append(data);
            })


        }
    });
}

1 Ответов

Рейтинг:
6

Karthik_Mahalingam

пробовать

var ary = [{ msg: 'msg', time: '11:43 pm' },
       { msg: 'msg', time: '11:42 pm' },
       { msg: 'msg', time: '11:45 pm' }];

       ary.sort(function (a, b) {
           var a1 = getDateObject(a.time);
           var b1 = getDateObject(b.time);
           var flag = b1.getTime() - a1.getTime();

           return flag;
       });

       function getDateObject(time) {

           var hour = time.split(':')[0];
           var temp = time.split(':')[1].split(' ')
           var mins = temp[0];
           var ampm = temp[1];

           hour = parseInt(hour);
           hour = ampm == 'pm' ? hour + 12 : hour;
           var today = new Date();
           var date = new Date(today.getFullYear(), today.getMonth(), today.getDate(), hour, mins, 0, 0);

           return date;
       }