按格式'09:00 AM'排序包含时间的字符串数组?

use*_*935 16 javascript jquery

我正在尝试排序我的数组.

该数组由时间格式的数据组成.

阵:

'9:15 AM', '10:20 AM', '02:15 PM'
Run Code Online (Sandbox Code Playgroud)

我该如何排序?

我正在获取此数据usig json服务并使用它来列出jquery mobile的listview中的事件.但我想按时间排序事件.

更新:我是如何在两个时间和时间从JSON分类数据的:

对于我的排序数据的特殊问题,按照日期和时间使用json,我这样做:

$.getJSON(serviceURL + 'read.php?month_no='+month_no, function(data) {


        events = data.data;

        events.sort(function(a,b){
            a = new Date(a.event_date+' '+a.event_time);
            b = new Date(b.event_date+' '+b.event_time);
            return a<b?-1:a>b?1:0;
       });


}); 
Run Code Online (Sandbox Code Playgroud)

Sho*_*rma 32

试试这个

var times = ['01:00 am', '06:00 pm', '12:00 pm', '03:00 am', '12:00 am'];

times.sort(function (a, b) {
  return new Date('1970/01/01 ' + a) - new Date('1970/01/01 ' + b);
});

console.log(times);
Run Code Online (Sandbox Code Playgroud)


Dus*_*ilk 7

我的解决方案(用于格式如“ 11:00”,“ 16:30” ..的时间。)

sortTimes: function (array) {
    return array.sort(function (a, b) {
        if (parseInt(a.split(":")[0]) - parseInt(b.split(":")[0]) === 0) {
            return parseInt(a.split(":")[1]) - parseInt(b.split(":")[1]);
        } else {
            return parseInt(a.split(":")[0]) - parseInt(b.split(":")[0]);
        }
    })
}
Run Code Online (Sandbox Code Playgroud)

万一有人想知道哈哈


NIN*_*OOP 6

实现sort(compare)函数并使用任意日期比较日期字符串:

Array.sort(function (a, b) {
    return Date.parse('01/01/2013 '+a) - Date.parse('01/01/2013 '+b)
});
Run Code Online (Sandbox Code Playgroud)

01/01/2013是任意日期。