javascript - tableSorter custom date parser doesn't work -


i have following table sorter configuration:

 $(function () {      $.tablesorter.addparser({          id: "customdate",          is: function(s) {              //return false;              //use above line if don't want table sorter auto detected parser              //else use below line.              //attention: doesn't check invalid stuff              //2009-77-77 77:77:77.0 matched              //if doesn't suit alter regex more restrictive              return /\d{1,2}\.\d{1,2}\.\d{1,4} \d{1,2}:\d{1,2}:\d{1,2}/.test(s);          },          format: function(s) {              s = s.replace(/\-/g," ");              s = s.replace(/:/g," ");              s = s.replace(/\./g," ");              s = s.split(" ");              return $.tablesorter.formatfloat(new date(s[0], s[1]-1, s[2], s[3], s[4], s[5]).gettime());          },          type: "numeric"      });     var $table = $('#table')         .tablesorter({             headers: {                         1: { sorter:'customdate' }                     },             sortlist: [[1,1]],   // sorting(desc) column index 1             dateformat: 'dd/mm/yyyy hh:mm:ss',             theme: 'blue',             widthfixed: true,             headertemplate: '{content} {icon}',             widgets: ['zebra', 'filter'],             widgetoptions: {                 zebra: ["even", "odd"],                 // filter_anymatch replaced! instead use filter_external option                 // set use jquery selector (or jquery object) pointing                 // external filter (column specific or match)                 filter_external: '.search',                 // add default type search first name column                 filter_defaultfilter: {1: '~{query}'},                 // include column filters                 filter_columnfilters: true,                 filter_placeholder: {search: 'Искать...'},                 filter_savefilters: true,                 filter_reset: '.reset'             }         })         // needed pager plugin know when calculate filtered rows/pages         .addclass('hasfilters')         .tablesorterpager({             container: $(".table-pager"),             output: '{page} из {filteredpages} ({filteredrows})',             size: 5         }); }); 

but after run application see following table column:
enter image description here

obviously column sorted wrong.

why?

actually no custom date parser needed. dateformat option should set ddmmyyyy. settings available option are:

  • mmddyyyy
  • ddmmyyyy
  • yyyymmdd

once set, time included in parsing of date (demo).


Comments