DATE EN FRANÇAIS

malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 - 6 juin 2005 à 12:42
yahijye Messages postés 1 Date d'inscription samedi 6 décembre 2008 Statut Membre Dernière intervention 21 janvier 2009 - 21 janv. 2009 à 21:20
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/31868-date-en-francais

yahijye Messages postés 1 Date d'inscription samedi 6 décembre 2008 Statut Membre Dernière intervention 21 janvier 2009
21 janv. 2009 à 21:20
juste en passant j'essaie
<?php
setlocale (LC_TIME, 'fr_FRA', 'France', 'French', 'fr_FR.ISO8859-1', 'fr_FR');
echo strftime('%A %d %B %Y');
?>
et j'ai un parse error ligne 2..

donc a revoir..
hkmshow Messages postés 1 Date d'inscription lundi 10 juillet 2006 Statut Membre Dernière intervention 11 juillet 2006
11 juil. 2006 à 18:45
oups!!!!!!!!!!!!!
c'est compliqué
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
31 mars 2006 à 18:05
bah ouais :
echo strftime('%A %d %B %Y', strtotime ($date));
fuckya Messages postés 125 Date d'inscription mercredi 31 mars 2004 Statut Membre Dernière intervention 8 juin 2006
31 mars 2006 à 17:56
$date est sensé être un timestamp :)
cs_babloo Messages postés 1 Date d'inscription lundi 16 mai 2005 Statut Membre Dernière intervention 31 mars 2006
31 mars 2006 à 17:18
Bonjour, j'ai utilisé le code optimisé donné plus haut comme ceci:

<?php
setlocale (LC_TIME, 'fr_FRA', 'France', 'French', 'fr_FR.ISO8859-1', 'fr_FR');
echo strftime('%A %d %B %Y', $date);
?>

Ma variable $date est issue d'une basse de donnée où la date est: 2006-03-15
Et l'affichage me donne: jeudi 01 janvier 1970

Quelqu'un aurai une idée sur ces problème? Je pèche dessus depuis 2jours... /oo\

Merci à vous
cs_GRenard Messages postés 1662 Date d'inscription lundi 16 septembre 2002 Statut Membre Dernière intervention 30 juillet 2008 1
7 juin 2005 à 23:49
Sachez aussi : (de php.net, vous le verrez pas now, je viens de le traduire)

L'information locale est maintenue par processus, non par thread. Si vous faites fonctionner PHP sur un serveur multi-threadé comme IIS ou Apache sur Windows, vous pourriez obtenir des changements soudains des configurations locales pendant qu'un script fonctionne, même si celui-ci n'appelle jamais la fonction setlocale(). Ceci survient à cause des autres scripts qui fonctionnent dans des threads différents du même processus. Ces scripts changent les configurations locales dans le processus au complet en utilisant la fonction setlocale().
fuckya Messages postés 125 Date d'inscription mercredi 31 mars 2004 Statut Membre Dernière intervention 8 juin 2006
7 juin 2005 à 19:26
Mouarf malalam merci je connaissais pas ^^
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
7 juin 2005 à 15:35
Sources qui peuvent être en rapport avec celle-ci
DATE MYSQL COMPLETE
DATE FRANCAIS (SIMPLE)
DATE COURTE OU LONGUE
DATE ET HEURE ACTUELLE
DATE EN FRANÇAIS

comme tu peux le voir, juste dans celles que présente code source, il y en a trois du même type...

Partager son code est une bonne intention, mais si il n'interesse personne alors ne poste pas... Ici, ta source ne fait qu'une source sans interet de plus sur cs... C'est une fonction qu'on sait tous programmer, qu'on a tous déja vu ici, et en plus, elle est plutot mal programmée... Plutot que de poster des fonctions, poste des pages complètes ou des mini projets... ça sera déja plus interessant... Imagines si on postait tous toutes les fonctions qu'on cré...
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
7 juin 2005 à 13:11
Re,

j'ai repondu un peu vite parce que j'avais un truc a faire pour le taf, donc je reprends, plus clairement lol (au passage, merci Antho lol) :
Oui setlocale() doit etre implementee. C'est le cas la plupar du temps vu que je n'ai jamais eu aucun probleme pour l'utiliser. Que cela renvoie false si ce n'est pas implemente est une bonne chose. Ce que j'ai omis est de mettre un test.
Oui, setlocale() se sert d'une rfc...et alors ? On va voir les valeurs possibles, on les met toutes, ou celles dont on a besoin, et c'est regle, quel que soit le systeme (si, oui, lol, setlocale est implementee...ce qui est le cas la plupart du temps a ma connaissance).
Pour le timestamp, certes, mais en meme temps la description de ta source dit "Une fonction qui retourne la date du jour en français." et je me suis simplement base la-dessus. Pour etre honnete, j'ai tout juste parcouru ta source, je n'ai donc pas regarde si tu proposais de renvoyer une autre date. Et ta modification se justifie donc pleinement.

Desole si mon intervention t'a paru agressive. Mais en meme temps, si j'avais ecrit une fonction, par exemple, comptant le nombre d'occurence d'un "mot" dans une chaine, on m'aurait fait a juste titre remarque que je devrais jeter un oeil la : http://de2.php.net/manual/en/function.str-word-count.php si je n'avais pas precise que j'avais ecrit ma fonction AU CAS OU on est une version de php < 4.3...
Donc je ne serais pas intervenu si tu avais, en fait, montre les deux facons de faire : setlocale, bien plus simple et optimisee, et ta fonction si jamais setlocale n'est pas implementee, comme le dit Antho.
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
7 juin 2005 à 13:09
"Au passage : si je rentre un parametre invalide (un peu comme pour setlocale), elle marche ta fonction...?"

LOL bien joué, ça rejoint mon commentaire
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
7 juin 2005 à 12:57
"Passer plusieurs locales n'était pas disponible avant PHP 4.3.0. -> et d'un"

ceux ayant des versions inférieures de PHP feraient mieux de patcher leur système... (et d'un)

"setlocale retourne la nouvelle valeur locale, ou bien FALSE si la fonctionnalité n'est pas implantée sur votre plate forme" > un point pour toi

"Un nom de catégorie invalide causera aussi l'affichage d'une alerte" > bah en même temps coder une erreur donnera une alerte, c'est normal...

"La valeur retournée par setlocale dépend du système d'explotiation qui fait tourner PHP"

Tu n'as qu'à tester en fonction de deux valeurs pouvant être retournées (un point pour moi)

on peut jouer à ça si tu veux lol ^^

Je ne pense pas que c'était dans l'intention de Malalam, qui a posté un code apparemment pas trop portable, mais quand même plus optimisé et fonctionnant la plupart du temps. Tu aurais dû préciser que ta source était plus portable que les autres, car je trouve l'intervention de Malalam justifiée.

a +
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
7 juin 2005 à 12:55
Hello,

je n'ai jamais eu de probleme avec setlocale : mais effectivement, il faut que la fonction existe et soit implementee...comme beaucoup de fonctions ;-)En fait, comme un peu tout en php...
php 4.3 : on en est au 5...faut pas deconner quand meme lol.
Heu oui...invalides...mais on peut en passer autant de valides que l'on veut. La j'en ai mis juste une partie parce que j'avais la flemme. Et ca fonctionne devrait fonctionner sur la plupart des plateforme (y compris freebsd!). La valeur retournee depend du systeme, en effet, d'ou l'importance de mettre tous les noms possibles...specifies dans la RFC 1766...et plus de surprise.

Mais bon, si tu tiens a garder 20 lignes de code...ok.
Au passage : si je rentre un parametre invalide (un peu comme pour setlocale), elle marche ta fonction...?
masterzorg Messages postés 3 Date d'inscription samedi 10 juillet 2004 Statut Membre Dernière intervention 7 juin 2005
7 juin 2005 à 12:43
Je cite la doc :
***Note
Passer plusieurs locales n'était pas disponible avant PHP 4.3.0. -> et d'un


setlocale retourne la nouvelle valeur locale, ou bien FALSE si la fonctionnalité n'est pas implantée sur votre plate forme, que la configuration spécifiée n'existe pas ou que le nom de catégorie est invalide. Un nom de catégorie invalide causera aussi l'affichage d'une alerte. Les noms de catégories et de configurations locales sont disponibles dans la RFC 1766 et ISO 639 .
-> et de deux

Note
La valeur retournée par setlocale dépend du système d'explotiation qui fait tourner PHP . La valeur retournée est exactement celle que la fonction setlocale() du système retourne.
-> et de trois (on peut avoir des surprises !)
masterzorg Messages postés 3 Date d'inscription samedi 10 juillet 2004 Statut Membre Dernière intervention 7 juin 2005
7 juin 2005 à 12:41
oups ! 'pour ceux'
masterzorg Messages postés 3 Date d'inscription samedi 10 juillet 2004 Statut Membre Dernière intervention 7 juin 2005
7 juin 2005 à 12:39
Petite remarque :
1 - cette procédure fonctionne même si la fonction setlocale n'est pas implémentée !
Et ça m'est déjà arrivé ! (pour ce qui lisent la doc PHP, il est bien précisé qu'elle n'est pas toujours implémentée ;-) ).
2 - echo strftime('%A %d %B %Y',$mon_timestamp) serait plus juste si on veut autre chose que la date du jour.
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
6 juin 2005 à 22:11
Salut,

on ne compte plus ce genre de sources non optimisées sur le site. Merci Malalam pour ta correction ;-)
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
6 juin 2005 à 12:42
hello,

decidement, je ne comprends pas cet acharnement a ne pas lire la doc ;-)

<?php
setlocale (LC_TIME, 'fr_FRA', 'France', 'French', 'fr_FR.ISO8859-1', 'fr_FR');
echo strftime ('%A %d %B %Y');
?>
Rejoignez-nous