unbewus...@fai.invalid (Une Bévue) écrivait :
> setlocale(LC_TIME,'fr_FR');
> date_default_timezone_set('Europe/Paris');
> bon, je ne vais pas chercher le pourquoi du comment, hein...
Bonjour,
Suivant les systèmes et les serveurs et leurs différents paramètres, on
ne peut pas savoir quelle sera la « valeur » acceptée par setlocale(),
car les différentes plates-formes possèdent des conventions de nommages
différentes.
Je pense qu'il est préférable de mettre plusieurs possibilités, le
serveur prendra celle qui lui convient, par exemple :
setlocale(LC_TIME, 'fr_FR.utf8', 'fr_FR.iso8859-1', 'fr_FR', 'french',
'French_France.1252', 'fra');
Le serveur les vérifiera dans l'ordre et prendra la première qui lui
convient.
On peut savoir laquelle est prise en compte par un
$loc_fr = setlocale(LC_TIME, 'fr_FR.utf8', 'fr_FR.iso8859-1', 'fr_FR',
'french', 'French_France.1252', 'fra');
echo "L'identifiant temps du français sur ce système est '$loc_fr'";
D'autre part, comme expliqué dans la documentation de setlocale(), il
est conseillé d'effectuer cette instruction juste avant d'en avoir
besoin, et pas une fois pour toutes, il serait donc plus pertinent :
function isodate2fr_FR($isodatestring){
$date_format='%A %d %B %Y à %Hh %M:%S';
$atime=new DateTime($isodatestring);
setlocale(LC_TIME, 'fr_FR.utf8', 'fr_FR.iso8859-1',
'fr_FR', 'french', 'French_France.1252', 'fra');
return strftime($date_format, $atime->format('U'));
}
On ne peut pas non plus savoir avec certitude quel sera le codage
retourné par strftime() : iso-8859-1, utf8, CP1252, autre...
--
Ce n'est pas parce que l'erreur se propage qu'elle devient vérité. Gandhi
Technologie aéronautique :
http://aviatechno.free.fr (
http://ottello.net)
Concorde dans la presse de 1965 à 2003 :
http://le.pointu.free.fr