/** * 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)); } });