J'utilise le plugin jquery tablesorter pour trier une table. Sur mon, les colonnes dans mon tableau montre la date au format mm/aa.Utiliser jQuery tablesorter pour trier les dates 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>
Note:
- Chaque cellule a une classe unique
- La date est affichée dans le format mm/aa
- cellule avec la date reçoit l'année ainsi
Mon code jQuery est comme ci-dessous:
// 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();
Mon problème est que le tableSorter interprète 00 comme année 1900 au lieu de 2000 et donc les données triées ne sont pas correctes.
Tout indice comment puis-je résoudre ce problème? J'utilise jQuery 1.2.6 et la dernière version de tablesorter.
Merci David. En attendant de tester cela lundi. Mettra à jour ici. – hitec
Cette solution a résolu mon problème. Merci David. – hitec
Cela a également été utile pour trier une colonne de date contenant des valeurs vides. Merci d'avoir posté cela. –