Page 1 sur 1

Date en français

Posté : 27 déc. 2006, 16:51
par Zaratous
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.

Posté : 27 déc. 2006, 16:55
par Ajoloca
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));
?>

Ca marche pas pour la date

Posté : 27 déc. 2006, 17:02
par Zaratous
C'est exactement ce que j'ai fait mais ça reste en anglais grr
quelqu'un a une idée ?
Merci bien

Posté : 27 déc. 2006, 17:12
par Ajoloca
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');
}

erreur de synthaxe

Posté : 27 déc. 2006, 17:37
par zaratrous
ça me marque une erreur de synthaxe sur ton code ??

Posté : 27 déc. 2006, 18:12
par Ajoloca
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.

Re: erreur de synthaxe

Posté : 27 déc. 2006, 18:36
par the dreamer
ç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));
?> 

Posté : 27 déc. 2006, 18:42
par Ajoloca
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');