Estoy usando el plugin jQuery tablesorter para ordenar una tabla. En mi caso, las columnas de mi tabla muestran la fecha en formato mm/aa.Uso de tablestaker jQuery para ordenar las fechas mm/aa
<tr>
<td class="col-name">...</td>
...
<td rel="2000" class="col-dob">10/00</td>
...
</tr>
<tr>
<td class="col-name">...</td>
...
<td rel="1986" class="col-dob">11/86</td>
...
</tr>
Nota:
- Cada celda tiene una clase única
- fecha se muestra en el formato mm/aa
- celular con fecha recibe el año, así
Mi código jQuery es el siguiente:
// add parser through the tablesorter addParser method
$.tablesorter.addParser({
// set a unique id
id: 'user-birthdate',
is: function(s) {
// return false so this parser is not auto detected
return false;
},
format: function(s) {
// format your data for normalization
var dateSplit = s.split('/');
if(2 !== dateSplit.length)
return 0;
return new Date(dateSplit[1], dateSplit[0], 1);
},
// set type, either numeric or text
type: 'numeric'
});
myClass.init = function() {
$('.module .user table').tablesorter({
sortList: [[0,0]],
widgets: ['zebra'],
headers: {
5: {
sorter:'user-birthdate'
}
}
});
}
myClass.init();
Mi problema es que tableSorter interpreta 00 como año 1900 en lugar de 2000 y, por lo tanto, los datos ordenados no son correctos.
¿Alguna pista de cómo puedo resolver esto? Estoy usando jQuery 1.2.6 y la última versión de tablesorter.
Gracias David. Esperando para probar esto el lunes. Se actualizará aquí. – hitec
Esta solución solucionó mi problema. Gracias David. – hitec
Esto también fue útil para ordenar una columna de fecha que tenía algunos valores en blanco. Gracias por publicar esto. –