[RESOLU] Les mois écrits en toute lettre

Eléphant du PHP | 161 Messages

05 avr. 2017, 11:39

Bonjour à toutes et à tous,

J'ai ci-après, un algorithme en PHP, récupérant la date d'un article (le script n'est bien sûr pas dans son intégralité, le reste n'étant pas important).
J'aimerais en fait produire la logique suivante : si le mois est égal à 04, alors nous verrons afficher Avril plutôt que 04 dans le listing des publications.
J'y suis presque? mais je dois certainement avoir oublié un petit détail dans ma logique, puisque cela m'affiche pour un article -écrit hier par exemple; la date 04 0 2017, plutôt que 04 AVRIL 2017.

Voici le code :
$elementsdate = chunk_split($tab['created'], 5, "-");
$elementsdate = explode("-", $elementsdate);
$mois = array("JANV.", "FÉV.", "MARS", "AVRIL", "MAI", "JUIN", "JUIL.", "AOÛT", "SEPT.", "OCT.", "NOV.", "DÉCEM.");
foreach ($mois as &$value) {
	for($i=00;$i<$elementsdate[2];$i++){
		$elementsdate[2] = $i;
	}
}
echo $dateAlaF = $elementsdate[3]." ".$elementsdate[2]." ".$elementsdate[1].$elementsdate[0]; 
 
Quelqu'un peut-il m'aider s'il vous plaît ?

Bonne journée à vous !

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

05 avr. 2017, 11:44

salut,

as tu essayées la fonction strftime ?

c'est la bonne solution pour afficher une date comme tu le souhaites (et prendre un truc existant et éprouvé ;) )


@+
Il en faut peu pour être heureux ......

Eléphant du PHP | 161 Messages

05 avr. 2017, 11:52

Salut,

Étant donné que je suis en localhost, et que le site prévoit d'être hébergé ensuite, au niveau des locales respectives installées sur mon système, ça risque d'être le bazard... Je n'ai pas forcément envie d'installer quoique ce soit, ou alors je suis complètement à côté et je n'ai pas compris l'utilisation :/

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

05 avr. 2017, 12:55

Bonjour,

Les tableaux sont déjà numérotés implicitement en partant de 0 donc tu peux simplement demander la valeur stockée das ton tableau qui est à l'index de ton n° de mois -1 puisque les tableaux commencent à 0
<?php
$elementsdate[2]="04"; // Pour simuler ton paramètre en entrée

// Le tableau des mois reste inchangé
$mois = array("JANV.", "FÉV.", "MARS", "AVRIL", "MAI", "JUIN", "JUIL.", "AOÛT", "SEPT.", "OCT.", "NOV.", "DÉCEM.");

// On va récupérer le nom du mois en fonction de son n°, et en retranchant 1 car les index des tableaux commencent à 0 
echo $mois[intval($elementsdate[2])-1];
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphant du PHP | 161 Messages

05 avr. 2017, 14:38

Merci infiniment ! En effet, en premier lieu, pour mon exemple, l'idée était de s'occuper seulement du 4 dans le chiffre 04.
Je ne connaissais pas bien intval, je l'ai pourtant déjà utilisé...
Hop ! Résolu ;)