Вот пример того, как я бы это сделал:
$.tablesorter.addParser({
id: 'quarters',
is: function (s) {
return false;
},
format: function (s) {
var match = s.match(/(0[1-9]|[12][0-9]|3[01])[- /.](0[1-9]|1[012])[- /.](19|20\d\d)/);
if (match)
{
return match[3] * 1000 - match[2] * 100 - match[1] * 10;
}
else return 0;
},
type: 'text'
});
$(document).ready(function () {
$("table").tablesorter({
headers: {
0: {
sorter: 'quarters'
}
}
});
});
Вы можете отрегулировать возврат для части с недействительной датой на любое целое число, которое вы хотите (0 означает, что оно наступило раньше самой ранней даты.)