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' } } });