Afficher LC_TIME ou LC_ALL ??

blue2i
Invité n'ayant pas de compte PHPfrance

16 avr. 2012, 10:42

Bonjour à tous

Je travaille sur on objet qui manipule et affiches des dates ... j'utilise donc la fonction setlocale ...... mais je ne comprend pas le fonctionnement des constantes LC_TIME et LC_ALL ......
Par exemple le code ci dessous :
	Setlocale (LC_ALL, 'fr_FR' );
	print 'Locale : ' . LC_TIME .'-'. LC_ALL .'<br/>';
	echo strftime("%A %d %B %Y"). " à : ".strftime("%Hh %M:%S"). "<br />";

	Setlocale (LC_ALL, 'nl_NL' );
	print 'Locale : ' . LC_TIME .'-'. LC_ALL .'<br/>';
	echo strftime("%A %d %B %Y"). " à : ".strftime("%Hh %M:%S"). "<br />";
	
	Setlocale (LC_ALL, 'en_US');
	print 'Locale : ' . LC_TIME .'-'. LC_ALL .'<br/>';
	echo strftime("%A %d %B %Y"). " à : ".strftime("%Hh %M:%S"). "<br />";
Affiche
Locale : 5-0
Lundi 16 avril 2012 à : 10h 38:54
Locale : 5-0
maandag 16 april 2012 à : 10h 38:54
Locale : 5-0
Monday 16 April 2012 à : 10h 38:54

A à priori rien à signaler ... sauf que je pensais que LC_TIME et LC_ALL évoluaient en fonction de SertLocale ?
alors que dans mon exemple ces constates retournent toujours la même chose ..... 5-0 ......

Je dois surement mal comprendre le sens de ces constantes ? Mais alors comment connaitre l'état du serveur à un insta,te T (quelle locale il utilise ?)

Merci d'avance

ViPHP
ViPHP | 2577 Messages

16 avr. 2012, 11:13

En fait, ce sont des constante qui permettent de savoir sur quelle local tu travailles et pas sur la valeur d'une local.

Tu peux faire echo Setlocale (LC_ALL, 0 ); pour connaitre la valeur (sans la modifier si j'ai compris la doc PHP)
Si locale vaut NULL ou vaut "0", la configuration locale ne sera pas modifiée, et la configuration courante sera retournée.

Petit nouveau ! | 2 Messages

16 avr. 2012, 11:22

Ouah ... réponse super rapide merci ...

Effectivement c'st déjà très bien ça me permet de connaitre ma locale courante et ça va bien m'aider ... Merci bien

par contre je ne comprend pas ces constantes .... si je change ma local elles devraient changer non ? ... y a un truc qui m'échappe là .....

ViPHP
ViPHP | 2577 Messages

16 avr. 2012, 11:33

Le premier paramètre de la fonction setlocal est un identifiant qui permet l'accès à la local, pas la valeur de la local.

$tableau[LC_ALL] = 'quelque choce' ;
Ca ne change pas la valeur de LC_ALL, c'est la même chose pour setlocal (pas sur d'être très clair...)

Petit nouveau ! | 2 Messages

16 avr. 2012, 11:49

Ah mais bien sur.... j'ai compris ......

C'est très clair merci encore pour ton aide si rapide ...

c'est mon premier post sur ce forum je suis bluffé ;)

A mon tour d'aider (si je peux)

A +