I needed a custom sort column for jquery tablesorter (http://tablesorter.com/docs/) for dates in the format of 12-Aug-2013 as the default tried to sort it as a string
Was quite complicated to work out, but think its done:
$.tablesorter.addParser({
'id' : 'customDates',
'is' : function(string) {
return false;
},
'format' : function(string) {
if (string == "") {
return '';
}
var thedate = string.split('-');
var monthint = {};
monthint['Jan'] = "01";
monthint['Feb'] = "02";
monthint['Mar'] = "03";
monthint['Apr'] = "04";
monthint['May'] = "05";
monthint['Jun'] = "06";
monthint['Jul'] = "07";
monthint['Aug'] = "08";
monthint['Sep'] = "09";
monthint['Oct'] = "10";
monthint['Nov'] = "11";
monthint['Dec'] = "12";
var date_day = parseInt(String(thedate[0]));
if (date_day.length == 1) {
date_day = '0' + date_day;
}
var date_month = monthint[thedate[1]];
var date_year = thedate[2];
return date_year + date_month + date_day;
},
'type' : 'numeric'
});
And then apply it to the table
$('table').tablesorter({
'debug' : 'true',
'headers' : {
0 : {
'sorter' : 'customDates'
}
}
});