tablesort
Version:
A sorting component for HTML tables
24 lines (20 loc) • 782 B
JavaScript
// Basic dates in dd/mm/yy or dd-mm-yy format.
// Years can be 4 digits. Days and Months can be 1 or 2 digits.
(function(){
var parseDate = function(date) {
date = date.replace(/\-/g, '/');
date = date.replace(/(\d{1,2})[\/\-](\d{1,2})[\/\-](\d{2,4})/, '$3-$2-$1'); // format before getTime
return new Date(date).getTime() || -1;
};
Tablesort.extend('date', function(item) {
return (
item.search(/(Mon|Tue|Wed|Thu|Fri|Sat|Sun)\.?\,?\s*/i) !== -1 ||
item.search(/\d{1,2}[\/\-]\d{1,2}[\/\-]\d{2,4}/) !== -1 ||
item.search(/(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)/i) !== -1
) && !isNaN(parseDate(item));
}, function(a, b) {
a = a.toLowerCase();
b = b.toLowerCase();
return parseDate(b) - parseDate(a);
});
}());