Convertir une date en français

Signaler
Messages postés
50
Date d'inscription
vendredi 29 octobre 2004
Statut
Membre
Dernière intervention
12 juillet 2005
-
Messages postés
50
Date d'inscription
vendredi 29 octobre 2004
Statut
Membre
Dernière intervention
12 juillet 2005
-
Bonsoir,

J'ai passé l'après-midi sur un truc tout bête je suppose mais que je n'arrive pas à résoudre. Je récupère une date dans ma base de données SQL. Elle est au format américain, je voudrais l'afficher au format français. J'ai trouvé plusieurs propositions sur ce site et ailleurs mais surtout pour la date du jour. Les autres ne fonctionnement pas non plus ??? Celle-là par exemple (qui fait l'inverse) :

function dateFRenMySQL ($jour) //$jour au format JJ-MM-AAAA
{
return substr($jour,6,4).substr($jour,4,2).substr($jour,0,2);
} //renvoie la date au format AAAA-MM-JJ


Mais je n'arrive pas à la convertir même en allant voir chez Nexen. J'en ai vu une autre avec explode mais pas de bon résultat non plus. Merci si vous pouvez m'aider.

6 réponses

Messages postés
50
Date d'inscription
vendredi 29 octobre 2004
Statut
Membre
Dernière intervention
12 juillet 2005

J'ai gardé la formulation avec return mais c'est un print que j'utilise bien sûr.
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
36
In a dream, I saw me, drop dead... U was here, U cried... It was just a deam, if I die, U won't cry, maybe, U'll be happy

Messages postés
861
Date d'inscription
mardi 26 mars 2002
Statut
Membre
Dernière intervention
29 novembre 2006
1
Sael og blesud



*§:\|!£¤ Faut vraiment que je modofie ma signature ... ;-) Je me comprend ...



Bon alors si je comprend bien ce que vous voulez faire :



Vous sortez de votre base de données une date au format Anglo-saxon
soit yyyy/mm/dd ( excusez moi aaaa-mm-jj ) et vous voulez la convertir
au format français soit jj-mm-aaaa ? Vous avez trouvé une function
faisant l'inverse ? : soit :



function dateFRenMySQL ($jour) //$jour au format JJ-MM-AAAA

{

return substr($jour,6,4).substr($jour,4,2).substr($jour,0,2);

} //renvoie la date au format AAAA-MM-JJ



Bah inversez la function ... ;-) :



function dateEN2FR($jour) //$jour au format aaaa-mm-jj

{

return substr($jour,8,2) . substr($jour,4,4) . substr($jour,0,4);

} //renvoie la date au format jj-mm-aaaa



echo dateEN2FR ('2005-07-12');



Mais vous pouvez aussi enregistrer vos dates au format français dans votre base de données MySQL



echo date('d-m-Y'); // Pour la date courante autrement jouez avec mktime() ... ;-)



Bon courage ...

NB : Si la réponse vous convient merci de l'accepter pour fermer ce thread ...

Sigurjón Bírgir Sigurðssón aka Sjón
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
36
non, une date enregistré au format français dans une table sql a pour valeur 0000-00-00...

In a dream, I saw me, drop dead... U was here, U cried... It was just a deam, if I die, U won't cry, maybe, U'll be happy

Messages postés
4
Date d'inscription
dimanche 3 avril 2005
Statut
Membre
Dernière intervention
25 juillet 2005

salut !
moi j eregistre a date dans la base sql sous forme unix (timestamp) avec la fonction time() ( ou équivalent comme strtotime) puis pour lire la date j'utilise ces fonctions

}
/**********************************************
* Fonction : date_unix_translate($day)
* Description : Traduit la date ecrite en unix en date sous format local:
jour(en langue locale)_JJ-Mois(en langue locale)-YYYY HH:MM:SS
*********************************************/
function date_unix_translate($date)
{
$jour=date("D",$date);
$jour_local=translate_day($jour);//fonction qui traduit le jours en francais
$jour_num=date(" d ",$date);
$moie=date("M",$date);
$month=translate_month($moie);//fonction qui traduit le mois en francais
$date_suite=date(" Y H<\sup>\h</\sup>i:s ",$date);
$finale=$jour_local.$jour_num.$month.$date_suite;
return $finale;
}
voir tout le code source dans mes sources
Messages postés
50
Date d'inscription
vendredi 29 octobre 2004
Statut
Membre
Dernière intervention
12 juillet 2005

Merci mais il s'agit juste d'afficher la date au format français, pas de l'écrire dans la base.

function dateEN2FR($jour) //$jour au format aaaa-mm-jj
{
return substr($jour,8,2) . substr($jour,4,4) . substr($jour,0,4);
} //renvoie la date au format jj-mm-aaaa

echo dateEN2FR ('2005-07-12');

Pourquoi '2005-07-12', plutôt $jour non ? Enfin je n'arrive pas à l'intégrer, voici les lignes concernées :

//on affiche le nombre de résultats trouvés
print 'Pour le mot '.$ta.' il y a '.$res.' résultat(s)'; (j'ai racourcis la ligne)


//on ressort les infos par ordre alphabétique
while( $sortie = mysql_fetch_array($req))
{


// remplace le mot cherché par le même mot en majuscules et surligné
$var = str_replace (array($tb,$tc,$td), ''.$tb.'', $sortie['description']);


// on affiche les 15 premiers documents trouvés avec leur titre et leur contenu triés par titre
echo '
';
echo $sortie['url'].'
';
echo $var;

}//fin de boucle


//on ferme la connexion
mysql_close();
}

Où que je mette la fonction soit j'ai un message d'erreur pour dateEN2FR qui ne peut être déclarée soit le résultat de la recherche indique bien "2 éléments trouvés" mais ne les affiche pas. Problème d'ordre de déroulement je suppose ?
Ca m'étonne quand même que cette fonction basique n'ai fait l'objet d'aucun script ?