je viens de migrer un site d'Ubuntu vers Mac OS X, j'utilise Apache2
conjointement à php5.
Sur Ubuntu la version de php5 n'est pas exactement la même :
PHP Version 5.3.5-1ubuntu7.2
<http://[2a01:e35:8a4f:d5d0:212:f0ff:fe6a:a07b]/info.php>
de celle sur Mac OS X Lion :
PHP Version 5.3.6
<http://[2a01:e35:2e2d:9ef0:221:e9ff:fee4:2559]/info.php>
et j'ai un "problème" avec sfrtime.
sur Ubuntu j'ai mis :
setlocale(LC_TIME,'fr_FR.utf8');// OK sur Ubuntu
date_default_timezone_set('Europe/Paris');
et j'obtiens la date en français avec ma fonction :
function isodate2fr_FR($isodatestring){
$date_format='%A %d %B %Y à %Hh %M:%S';
$atime=new DateTime($isodatestring);
return strftime($date_format, $atime->format('U'));
}
sur Mac OS X, comme sous Ubuntu la variable d'environnement $LC_TIME est
vide :
imyt% echo $LC_TIME
imyt%
quelqu'un aurait'il un tuyau pour obtenir la date en français sur Mac OS
X Lion ?
j'ai posté le même message, aux typos près, sur "fr.comp.lang.php" qui
ne réagit + beaucoup...
--
« Les femmes préfèrent les hommes qui les prennent sans les comprendre,
aux hommes qui les comprennent sans les prendre. »
(Marcel Prévost)
ben oui, c'est une "constante", une variable d'environnement, évidemment : -> echo LC_TIME donne :
imyt% echo LC_TIME LC_TIME imyt%
tout comme "echo toto" : imyt% echo toto toto imyt%
))) -- « Les femmes préfèrent les hommes qui les prennent sans les comprendre, aux hommes qui les comprennent sans les prendre. » (Marcel Prévost)
SAM
Le 19/09/11 14:59, Une Bévue a écrit :
je viens de migrer un site d'Ubuntu vers Mac OS X, j'utilise Apache2 conjointement à php5. Sur Ubuntu la version de php5 n'est pas exactement la même : PHP Version 5.3.5-1ubuntu7.2 <http://[2a01:e35:8a4f:d5d0:212:f0ff:fe6a:a07b]/info.php>
<?php setlocale(LC_TIME,'fr_FR');// OK sur Ubuntu.utf8 date_default_timezone_set('Europe/Paris'); echo "En français ".strftime('%A %d %B %Y à %Hh %M:%S')."<br />"; ?>
me donne : En français Lundi 19 septembre 2011 à 17h 55:21
mais tout ça me semble un brin capricieux très peu de tolérance quant aux " et ' et ( ) et .
echo "En français " . strftime("%A %d %B %Y"). " à : ".strftime("%Hh %M:%S"). "<br />";
sur 1 ligne fonctionne aussi
-- Stéphane Moriaux avec/with iMac-intel
Le 19/09/11 14:59, Une Bévue a écrit :
je viens de migrer un site d'Ubuntu vers Mac OS X, j'utilise Apache2
conjointement à php5.
Sur Ubuntu la version de php5 n'est pas exactement la même :
PHP Version 5.3.5-1ubuntu7.2
<http://[2a01:e35:8a4f:d5d0:212:f0ff:fe6a:a07b]/info.php>
de celle sur Mac OS X Lion :
PHP Version 5.3.6
<http://[2a01:e35:2e2d:9ef0:221:e9ff:fee4:2559]/info.php>
et j'ai un "problème" avec sfrtime.
heu ...
10.6.8 --->
<?php
setlocale(LC_TIME,'fr_FR');// OK sur Ubuntu.utf8
date_default_timezone_set('Europe/Paris');
echo "En français ".strftime('%A %d %B %Y à %Hh %M:%S')."<br />";
?>
me donne :
En français Lundi 19 septembre 2011 à 17h 55:21
mais tout ça me semble un brin capricieux
très peu de tolérance quant aux " et ' et ( ) et .
echo "En français " . strftime("%A %d %B %Y"). " à : ".strftime("%Hh
%M:%S"). "<br />";
je viens de migrer un site d'Ubuntu vers Mac OS X, j'utilise Apache2 conjointement à php5. Sur Ubuntu la version de php5 n'est pas exactement la même : PHP Version 5.3.5-1ubuntu7.2 <http://[2a01:e35:8a4f:d5d0:212:f0ff:fe6a:a07b]/info.php>
<?php setlocale(LC_TIME,'fr_FR');// OK sur Ubuntu.utf8 date_default_timezone_set('Europe/Paris'); echo "En français ".strftime('%A %d %B %Y à %Hh %M:%S')."<br />"; ?>
me donne : En français Lundi 19 septembre 2011 à 17h 55:21
mais tout ça me semble un brin capricieux très peu de tolérance quant aux " et ' et ( ) et .
echo "En français " . strftime("%A %d %B %Y"). " à : ".strftime("%Hh %M:%S"). "<br />";
sur 1 ligne fonctionne aussi
-- Stéphane Moriaux avec/with iMac-intel
unbewusst.sein
SAM wrote:
<?php setlocale(LC_TIME,'fr_FR');// OK sur Ubuntu.utf8 date_default_timezone_set('Europe/Paris'); echo "En français ".strftime('%A %d %B %Y à %Hh %M:%S')."<br />"; ?>
me donne : En français Lundi 19 septembre 2011 à 17h 55:21
mais tout ça me semble un brin capricieux très peu de tolérance quant aux " et ' et ( ) et .
Bon, merci beaucoup, ça roule aussi chez moi, j'ai simplement supprimé le ".utf8"... ça marche dons avec : setlocale(LC_TIME,'fr_FR'); date_default_timezone_set('Europe/Paris'); bon, je ne vais pas chercher le pourquoi du comment, hein... -- « Les femmes préfèrent les hommes qui les prennent sans les comprendre, aux hommes qui les comprennent sans les prendre. » (Marcel Prévost)
SAM <stephanemoriaux.NoAdmin@wanadoo.fr.invalid> wrote:
<?php
setlocale(LC_TIME,'fr_FR');// OK sur Ubuntu.utf8
date_default_timezone_set('Europe/Paris');
echo "En français ".strftime('%A %d %B %Y à %Hh %M:%S')."<br />";
?>
me donne :
En français Lundi 19 septembre 2011 à 17h 55:21
mais tout ça me semble un brin capricieux
très peu de tolérance quant aux " et ' et ( ) et .
Bon, merci beaucoup, ça roule aussi chez moi, j'ai simplement supprimé
le ".utf8"...
ça marche dons avec :
setlocale(LC_TIME,'fr_FR');
date_default_timezone_set('Europe/Paris');
bon, je ne vais pas chercher le pourquoi du comment, hein...
--
« Les femmes préfèrent les hommes qui les prennent sans les comprendre,
aux hommes qui les comprennent sans les prendre. »
(Marcel Prévost)
<?php setlocale(LC_TIME,'fr_FR');// OK sur Ubuntu.utf8 date_default_timezone_set('Europe/Paris'); echo "En français ".strftime('%A %d %B %Y à %Hh %M:%S')."<br />"; ?>
me donne : En français Lundi 19 septembre 2011 à 17h 55:21
mais tout ça me semble un brin capricieux très peu de tolérance quant aux " et ' et ( ) et .
Bon, merci beaucoup, ça roule aussi chez moi, j'ai simplement supprimé le ".utf8"... ça marche dons avec : setlocale(LC_TIME,'fr_FR'); date_default_timezone_set('Europe/Paris'); bon, je ne vais pas chercher le pourquoi du comment, hein... -- « Les femmes préfèrent les hommes qui les prennent sans les comprendre, aux hommes qui les comprennent sans les prendre. » (Marcel Prévost)
Dominique Ottello
(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 :
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 :
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
unbewusst.sein@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 :
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 :
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
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 :
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 :
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
unbewusst.sein
Dominique Ottello wrote:
Bonsoir !
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 :
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 :
On ne peut pas non plus savoir avec certitude quel sera le codage retourné par strftime() : iso-8859-1, utf8, CP1252, autre...
ça c'est plutôt ennuyeux, coup de pot, il me semble que c'est utf-8 sur mac os...
merci beaucoup pour toutes ces précisions !!! -- « Les femmes préfèrent les hommes qui les prennent sans les comprendre, aux hommes qui les comprennent sans les prendre. » (Marcel Prévost)
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 :
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 :
On ne peut pas non plus savoir avec certitude quel sera le codage
retourné par strftime() : iso-8859-1, utf8, CP1252, autre...
ça c'est plutôt ennuyeux, coup de pot, il me semble que c'est utf-8 sur
mac os...
merci beaucoup pour toutes ces précisions !!!
--
« Les femmes préfèrent les hommes qui les prennent sans les comprendre,
aux hommes qui les comprennent sans les prendre. »
(Marcel Prévost)
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 :
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 :
On ne peut pas non plus savoir avec certitude quel sera le codage retourné par strftime() : iso-8859-1, utf8, CP1252, autre...
ça c'est plutôt ennuyeux, coup de pot, il me semble que c'est utf-8 sur mac os...
merci beaucoup pour toutes ces précisions !!! -- « Les femmes préfèrent les hommes qui les prennent sans les comprendre, aux hommes qui les comprennent sans les prendre. » (Marcel Prévost)
unbewusst.sein
Dominique Ottello wrote:
$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'";
Euh, ça dépend --AUSSI-- de l'ordre dans lequel on met ces strings :
<?php header('Content-type: text/html; charset=utf-8'); $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'<br />"; $loc_fr = setlocale(LC_TIME, 'fr_FR', 'fr_FR.utf8', 'fr_FR.iso8859-1', 'french', 'French_France.1252', 'fra'); echo "L'identifiant temps du français sur ce système est '$loc_fr'"; ?>
dans le 1ier cas 'fr_FR.iso8859-1' est avant 'fr_FR' ; dans le second, 'fr_FR' est en 1ier; résultat sur mac os x lion : L'identifiant temps du français sur ce système est 'fr_FR.iso8859-1' L'identifiant temps du français sur ce système est 'fr_FR'
est aussi, je viens juste de remarquer que sur mac os x c'est 'fr_FR.utf-8' qui est pris en compte, mais pas 'fr_FR.utf8' (ie. sans le "-" entre 'utf' et "!")...
-- « Les femmes préfèrent les hommes qui les prennent sans les comprendre, aux hommes qui les comprennent sans les prendre. » (Marcel Prévost)
$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'";
Euh, ça dépend --AUSSI-- de l'ordre dans lequel on met ces strings :
<?php
header('Content-type: text/html; charset=utf-8');
$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'<br
/>";
$loc_fr = setlocale(LC_TIME, 'fr_FR', 'fr_FR.utf8',
'fr_FR.iso8859-1', 'french', 'French_France.1252', 'fra');
echo "L'identifiant temps du français sur ce système est '$loc_fr'";
?>
dans le 1ier cas 'fr_FR.iso8859-1' est avant 'fr_FR' ;
dans le second, 'fr_FR' est en 1ier; résultat sur mac os x lion :
L'identifiant temps du français sur ce système est 'fr_FR.iso8859-1'
L'identifiant temps du français sur ce système est 'fr_FR'
est aussi, je viens juste de remarquer que sur mac os x c'est
'fr_FR.utf-8' qui est pris en compte, mais pas 'fr_FR.utf8' (ie. sans le
"-" entre 'utf' et "!")...
--
« Les femmes préfèrent les hommes qui les prennent sans les comprendre,
aux hommes qui les comprennent sans les prendre. »
(Marcel Prévost)
$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'";
Euh, ça dépend --AUSSI-- de l'ordre dans lequel on met ces strings :
<?php header('Content-type: text/html; charset=utf-8'); $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'<br />"; $loc_fr = setlocale(LC_TIME, 'fr_FR', 'fr_FR.utf8', 'fr_FR.iso8859-1', 'french', 'French_France.1252', 'fra'); echo "L'identifiant temps du français sur ce système est '$loc_fr'"; ?>
dans le 1ier cas 'fr_FR.iso8859-1' est avant 'fr_FR' ; dans le second, 'fr_FR' est en 1ier; résultat sur mac os x lion : L'identifiant temps du français sur ce système est 'fr_FR.iso8859-1' L'identifiant temps du français sur ce système est 'fr_FR'
est aussi, je viens juste de remarquer que sur mac os x c'est 'fr_FR.utf-8' qui est pris en compte, mais pas 'fr_FR.utf8' (ie. sans le "-" entre 'utf' et "!")...
-- « Les femmes préfèrent les hommes qui les prennent sans les comprendre, aux hommes qui les comprennent sans les prendre. » (Marcel Prévost)