You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Plugins/sorting/stringMonthYear.js

46 lines
1.4 KiB
JavaScript

/**
* This sorting plug-in will sort, in calendar order, data which
* is in the format "MMMM yyyy". Inspired by forum discussion:
* http://datatables.net/forums/discussion/1242/sorting-dates-with-only-month-and-year
*
* @name Date (MMMM yyyy)
* @anchor Sort dates in the format `MMMM yyyy`
* @author Phil Hurwitz
*
* @example
* $('#example').DataTable( {
* columnDefs: [
* { type: 'stringMonthYear', targets: 0 }
* ]
* } );
*/
jQuery.extend(jQuery.fn.dataTableExt.oSort, {
"stringMonthYear-pre": function (s) {
var months = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];
var dateComponents = s.split(" ");
dateComponents[0] = dateComponents[0].replace(",", "");
dateComponents[1] = jQuery.trim(dateComponents[1]);
var year = dateComponents[1];
var month = 0;
for (var i = 0; i < months.length; i++) {
if (months[i].toLowerCase() == dateComponents[0].toLowerCase()) {
month = i;
break;
}
}
return new Date(year, month, 1);
},
"stringMonthYear-asc": function (a, b) {
return ((a < b) ? -1 : ((a > b) ? 1 : 0));
},
"stringMonthYear-desc": function (a, b) {
return ((a < b) ? 1 : ((a > b) ? -1 : 0));
}
});