Page 1 sur 1

Soucis trie de date fichier XML

Posté : 10 mai 2012, 18:58
par fabrice88250
Bonjour,
j’essaie de trier des dates qui sont dans un fichier xml afin d'afficher les actus chronologiquement.
Je soucis c'est que au lieu d'avoir un trie réél des date jour moi année j'ai un trie que je fait dabord sur tout les jour puis tout les moi puis tout les année.
en gros j'ai ce résultat :
01/01/2012
01/04/2012
01/06/2012
01/07/2012
01/08/2012
02/05/2012
02/06/2012
02/07/2012
02/08/2012
03/10/2012....

mon code actuel est :
	$debuts = array();
	
	foreach ($itemnom as $item) 
	{

	$debut = $item->getElementsByTagName('DATE_DEBUT');
	$debut = $debut->item(0)->nodeValue;

	$debuts[] = $debut.'<br/>'; 
	}

	$resultdate = array_unique($debuts);
	asort($resultdate);
	//print_r($resultdate);
	$debutsmenu = implode("", $resultdate);
	echo $debutsmenu;
Comment puis-je faire pour que les date soit dans le bon ordre ?

Re: Soucis trie de date fichier XML

Posté : 10 mai 2012, 19:23
par xTG
Avec un format YYYY-MM-DD tu auras un tri correct avec cette fonction. ;)

Re: Soucis trie de date fichier XML

Posté : 10 mai 2012, 21:05
par fabrice88250
le hic c'est que je ne peus pas modifié les dates qui sont dans le fichier xml.
Par contre puis-je les récupérer au format 01/01/1970 et faire en sorte d'avoir le format que tu préconise ? 1970/01/01

Re: Soucis trie de date fichier XML

Posté : 10 mai 2012, 21:50
par xTG
La fonction date() est là pour cela. :P
$date = '01/01/2013';
$date = date('YYYY/MM/DD', strtotime($date));
Et si le format français n'est pas supporté (tu le verra assez vite), tu peux retravailler la date manuellement à coup de explode() sur le slash puis reconstruction de la chaîne dans le bon ordre.

Re: Soucis trie de date fichier XML

Posté : 11 mai 2012, 10:33
par fabrice88250
ok je viens de faire le test sa à l'air d’être bon merci.
voilà comment j'ai fait pour avoir le bon trie (si plus simple ou si mieux je vous écoute):
	$debuts = array();
	
	foreach ($itemnom as $item) 
	{
	$debut = $item->getElementsByTagName('DATE_DEBUT');
	$debut = $debut->item(0)->nodeValue;
	$debut = date('Y/m/d', strtotime($debut));
	$debuts[] = $debut.'<br/>'; 
	}
	$resultdate = array_unique($debuts);
	asort($resultdate);
	$debutsmenu = implode("", $resultdate);
	echo $debutsmenu;