Я получил эту работу: Working Demo
Ссылка: https://gist.github.com/mark47/10427687
$table = $('#KiList').dataTable({
bAutoWidth: false,
aoColumns: [{
'sWidth': '35%'
}, {
'sWidth': '20%',
"type": "datetime-us"//changed
}, {
'sWidth': '25%',
"sType": 'string'
}, {
'sWidth': '10%',
"sType": 'string'
}, {
'sWidth': '10%',
"sType": 'string'
}],
"aoColumnDefs": [{
"aTargets": [1],
"mRender": function(date, type, full) {
return moment(date).format('MM-DD-YYYY hh:mm a');
}
}],
aaSorting: [[1, 'desc']]
});
Добавлено:
jQuery.extend(jQuery.fn.dataTableExt.oSort, {
"datetime-us": function (a) {
// If there's no slash, then it's not an actual date, so return zero for sorting
if(a.indexOf('/') === -1) {
return '0';
} else {
// Set optional items to zero
var hour = 0,
min = 0,
ap = 0;
// Execute match. Requires month, day, year. Can be mm/dd or m/d. Can be yy or yyyy
// Time is optional. am/pm is optional
// TODO - remove extra time column from array
var b = a.match(/(\d{1,2})\/(\d{1,2})\/(\d{2,4})((\d{1,2}):(\d{1,2}))? ?(am|pm|AM|PM|Am|Pm)?/),
month = b[1],
day = b[2],
year = b[3];
// If time exists then output hours and minutes
if (b[4] != undefined) {
hour = b[5];
min = b[6];
}
// if using am/pm then change the hour to 24 hour format for sorting
if (b[7] != undefined) {
ap = b[7];
if(hour == '12') hour = '0';
if(ap == 'pm') hour = parseInt(hour, 10)+12;
}
// for 2 digit years, changes to 20__ if less than 70
if(year.length == 2){
if(parseInt(year, 10) < 70) year = '20'+year;
else year = '19'+year;
}
// Converts single digits
if(month.length == 1) month = '0'+month;
if(day.length == 1) day = '0'+day;
if(hour.length == 1) hour = '0'+hour;
if(min.length == 1) min = '0'+min;
var tt = year+month+day+hour+min;
return tt;
}
},
"datetime-us-asc": function (a, b) {
return a - b;
},
"datetime-us-desc": function (a, b) {
return b - a;
}
});