11484 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

J'utilise le plugin tablesorter avec Jquery afin de permettre le trie d'un tableau.
Mon problème est que les dates sont triées alphanumériquement
Dans un premier temps, au niveau de mon SELECT j'ai formaté via SQL la date

DATE_FORMAT(date_creation,'%d/%m/%Y')

et la date n'est pas considéré comme un format date.

j'ai rajouté au niveau du javascript le format de la date

$("#matable")
.tablesorter({
	sortList: [[0,1]] ,
	dateFormat: 'dd/mm/yyyy',
	widgets: ['zebra']
	});


là aussi trie alphnumérique.

Quand je supprime le formatage de la date dans le SQL, le trie est correct mais le format d'affichage est un format date US (ma colonne de stockage est un TIMESTAMP).

Que dois je faire pour que le format date soit celui d'une date française avec un trie adéquat.
Modifié par Babali (09 Apr 2010 - 08:54)
J'ai exactement le même problème. J'attends impatiemment une réponse. Si j'ai quelque chose je te préviens.
$.tablesorter.addParser({
// set a unique id
id: 'mydate',
is: function(s) {
// return false so this parser is not auto detected
return false;
},
format: function(s) {
// format your data for normalization
s = "" + s;
var IsoDateRe = new RegExp("^([0-9]{2})/([0-9]{2})/([0-9]{4})$");
var hit = s.match(IsoDateRe);
if (hit && hit.length == 4)
return hit[3]+hit[2]+hit[1];
else
return 0;
},
// set type, either numeric or text
type: 'numeric'
});

$("#Sort").tablesorter({
dateFormat: 'dd/mm/yyyy',
headers: {
4: {sorter: 'mydate'},
7: {sorter: false}
}
});
Hello Babali,

J'ai failli utilisé tableSorter et j'avais pas pensé à cette problématique. Meme si je n'utilise pas, je sais pas pourquoi j'ai envie de t'aider à resoudre ton souci plus que les autres.


Babali a écrit :

j'ai rajouté au niveau du javascript le format de la date

$("#matable")
.tablesorter({
	sortList: [[0,1]] ,
	dateFormat: 'dd/mm/yyyy',
	widgets: ['zebra']
	});


là aussi trie alphnumérique.

Que dois je faire pour que le format date soit celui d'une date française avec un trie adéquat.


J'aurais été tenté de te dire qu'il faut préciser la colonne. Tu dis à TableSorter que tu utilises tel format de date sur l'ensemble mais il aimerait connaitrait les colonnes de type date Smiley rolleyes

Si tu remplaces ton code par :

.tablesorter({
	sortList: [[0,1]] ,
	dateFormat: 'dd/mm/yy',
	widgets: ['zebra']
	});


Qu'est ce que cela donne ?
Bien trié non ? Smiley biggrin
Ou là !! Je ne me rappelais même plus de ce post qui date de juin de l'année dernière. Mais après plusieurs expérimentations, voici la solution que j'ai mise en oeuvre et qui fonctionne chez moi.


	$("#matable")
		.tablesorter({
                    sortList: [[0,1]], 
                    widgets: ['zebra'], 
                    dateFormat: 'uk', 
                    headers: {0: {sorter: "shortDate"}, 2:{sorter: false}}
        })


On peut considérer que c'est résolu ... d'ailleurs Smiley biggrin