以格式’09:00 AM’对包含时间的字符串数组进行排序?
我正在尝试排序我的数组。
该数组由时间格式的数据组成。
阵:
'9:15 AM', '10:20 AM', '02:15 PM'
我应该如何排序?
我正在获取此数据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 ab?1:0; }); });
试试这个
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);
实现sort(compare)函数并使用任意日期比较日期字符串:
Array.sort(function (a, b) { return Date.parse('01/01/2013 '+a) - Date.parse('01/01/2013 '+b) });
01/01/2013是任意日期。
我的解决方案(时间格式为“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]); } }) }
如果有人想知道哈哈
var a = ['9:15 AM', '10:20 AM', '02:15 PM']; var sort = function(a){ var sa = [], d = new Date(), ds = d.toDateString(); for(var i = 0; i < a.length; i++){ d = new Date(ds + ' ' + a[i]); sa.push(d); } sa.sort(function(a, b){return a.getTime() - b.getTime();}) return sa; }