fonction explode() et date

Eléphanteau du PHP | 22 Messages

22 janv. 2011, 21:06

Bonjour tout le monde,

tout d'abord, j'espère que le sujet posté correspond parfaitement à ma demande.

voilà mon problème :

j'ai un formulaire qui poste dans une autre page une date au format suivant :
22/1/2011

et je souhaiterais que cette date s'affiche de la façon suivante:
22/JANVIER/2011

j'imaginais donc procéder de cette manière:
dans un premier temps je scinde en trois la date, puis dans un deuxième temps je convertie le chiffre 1 en lettre (ici : JANVIER).


j'imaginais pour cela utiliser la fonction explode() pour séparer une chaîne en plusieurs parties et un tableau pour convertir le 1 en JANVIER,le 2 en FEVRIER etc... mais je ne m'en sort vraiment pas.

Auriez-vous une solution allant dans ce sens ou bien dites moi si c'est une mauvaise piste.


merci encore pour votre aide et à très vite

Nicolas

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

22 janv. 2011, 23:05

Salut

$tab = explode('/', $variabledate);
switch($tab[1]){
case '1' : $tab[1] = 'janvier'; break;
//etc
Default : break;
}

Par exemple

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

Eléphanteau du PHP | 22 Messages

22 janv. 2011, 23:20

Re bonjour tout le monde,

je vais essayer d'approfondir ma question par un exemple :
$date = $_POST['date'];
$dateScind = explode("/", $date);

$jour = $dateScind[0];
$mois = $dateScind[1];
$annee = $dateScind[2];




$mois = array ('1' => 'JANVIER','2' => 'FEVRIER','3' => 'MARS','4' => 'AVRIL','5' => 'MAI','6' => 'JUIN','7' => 'JUILLET','8' => 'AOUT','9' => 'SEPTEMBRE','10' => 'OCTOBRE','11' => 'NOVEMBRE','12' => 'DECEMBRE');

foreach($mois as $strMois)
{
    $var = $jour."/".$strMois."/".$annee; 
}

echo $var;
avec ce code si je poste 22/1/2011 alors s'affichera => 22/DECEMBRE/2011
Bon...deux points positifs: je réussis à scinder mon $_POST en trois et je remplace le mois "numérique" en chaine de caractères.
Maintenant (sans doute le plus simple) je n'arrive pas à varier le mois en fonction de ce que je poste. Ici DECEMBRE est affiché par défaut !!

merci pour votre aide et à très vite.

Eléphanteau du PHP | 22 Messages

22 janv. 2011, 23:26

Salut

$tab = explode('/', $variabledate);
switch($tab[1]){
case '1' : $tab[1] = 'janvier'; break;
//etc
Default : break;
}

Par exemple

@+

Bonsoir moogli,

j'écrivais mon précèdent message alors que tu me répondais...
je te remercie de t'être attardé sur mon cas, je vais étudier ça !!

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

22 janv. 2011, 23:39

Avec ton code tu peut faire :

$jour . $mois[ $datescind[1]] . $annee

Fait attention a tes noms de variable la tu ecrase lanvariable mois pour creer ton tableau.

Qui plus est ton code parcour le tableau mois maisnsans comparaison c'est pour cela que tu a toujours decembre.

L'avantage de ta solution est de permettre une traduction multilingue avec un tableau a deux dimensions.


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

Eléphanteau du PHP | 22 Messages

23 janv. 2011, 00:21

Merci beaucoup à toi :)
$var =  $jour."/".$mois[$dateScind[1]]."/".$annee;
a+

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

23 janv. 2011, 00:25

De rien ;)
Il en faut peu pour être heureux ......

ViPHP
ViPHP | 5462 Messages

23 janv. 2011, 00:46

pour les format de date c'est stototime, strptime ou date_create_from_format, pour les date en français c'est avec strftime, donc normalement pas besion de bidouille avec des explode et des array avec les texte en français...