Date en français

Zaratous
Invité n'ayant pas de compte PHPfrance

27 déc. 2006, 16:51

Bonjour,
Afin d'afinchez la date en français, j'utilise ce code :
setlocale (LC_TIME, 'fr_FR');
Ca marchait jusqu'à présent.
Mais j'ai changé de serveur et la date s'affiche à présent en anglais ??
Comment puis-je faire (c'est à présent en php 5 je crois)
Merci à vous.

ViPHP
ViPHP | 1961 Messages

27 déc. 2006, 16:55

Bonjour,
Voici un bout de code que fonctionne correctement en PHP 5.x tu peux t'en inspirer
<?php
	setlocale (LC_ALL, 'fr_FR'); 
	echo "<b>du</b> "; 
	$jour1="01"; 
	$mois1="01"; 
	$year1="2007"; 
	echo strftime("%A %e %B %Y", mktime(0, 0, 0,$mois1 ,$jour1 ,$year1)); 
	echo " <b>au</b> "; 
	$jour2="10"; 
	$mois2="01"; 
	$year2="2007"; 
	echo strftime("%A %e %B %Y", mktime(0, 0, 0,$mois2,$jour2,$year2));
?>
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

Zaratous
Invité n'ayant pas de compte PHPfrance

27 déc. 2006, 17:02

C'est exactement ce que j'ai fait mais ça reste en anglais grr
quelqu'un a une idée ?
Merci bien

ViPHP
ViPHP | 1961 Messages

27 déc. 2006, 17:12

Re,

Tu est sur que c'est implémenté ?
D'après la doc
setlocale() retourne la nouvelle configuration locale, ou FALSE si la localisation n'est pas implémentée sur votre plate-forme, si la variable de localisation n'existe pas, ou si la catégorie spécifiée n'est pas valide. Un nom de catégorie invalide générera un message d'alerte. La liste des noms de locales/catégories peut être trouvée en consultant la RFC 1766 ainsi que l'ISO 639. Les différentes plates-formes possèdent des conventions de nommages différentes.
Pour plus de détails regarde cette page
Essaie donc de tester le retour de setlocale() comme ceci
if(false===(setlocale((LC_ALL, 'fr_FR'))){
   die('Impossible de passer en fran&ccedil;ais');
}
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

zaratrous
Invité n'ayant pas de compte PHPfrance

27 déc. 2006, 17:37

ça me marque une erreur de synthaxe sur ton code ??

ViPHP
ViPHP | 1961 Messages

27 déc. 2006, 18:12

Effectivement, il met une erreur même avec setlocale(LC_ALL, 'fr_FR') seulement.

Je vais essayer de comprendre.
Mais je vois pas trop pourquoi.
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

Eléphanteau du PHP | 25 Messages

27 déc. 2006, 18:36

ça me marque une erreur de synthaxe sur ton code ??
normal y'a une parenthèse de trop ^^
<?php
if(false===(setlocale(LC_ALL, 'fra_fra'))){
   die('Impossible de passer en fran&ccedil;ais');
}?>
c'est mieux non ?

La valeur setlocale dépend du système d'exploitation.

donc normalement t'auras ça :
<?php
    setlocale (LC_ALL, 'fra_fra');
    echo "<b>du</b> "; 
    $jour1="01"; 
    $mois1="01"; 
    $annee1="2007"; 
    echo strftime("%A %e %B %Y", mktime(0, 0, 0, $mois1, $jour1, $annee1)); 
    echo " <b>au</b> "; 
    $jour2="10"; 
    $mois2="01"; 
    $annee2="2007"; 
    echo strftime("%A %e %B %Y", mktime(0, 0, 0,$mois2,$jour2,$annee2));
?> 

ViPHP
ViPHP | 1961 Messages

27 déc. 2006, 18:42

Re,

Pour moi le PB est résolu.

Ça venait du fait que dans mon fichier de configuration de php, la directive 'short_open_tags' était à On.
Il faut la passer à Off et redémarrer le serveur WEB.
ensuite pour le test fais-le plus simplement comme ceci
setlocale(LC_ALL, 'fr_FR') || die('Impossible de passer en fran&ccedil;ais');
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein