salut tt le monde,

je travaille actuellement sur une application pour laquelle je dois détecter la timezone de l'utilisateur, pouvoir la modifier à volonté, afficher la date et la timezone suivant la locale de l'utilisateur.

Les 2 premiers points, pas de souçi, le premier à l'aide d'un script javascript, le 2e en me servant des classes datetimezone, mais le 3e point, je bloque sur l'affichage en fct de la locale.

voici mon code :
$date = new DateTime(null,new DateTimeZone($sTimezone) );
return $date->format($sFormat);


ou $sFormat peut être DateTime::RSS ou DateTime::ISO8601.
Le pb, c que la fct 'format' renvoie tjs une date au format anglais,et pas en fct de la locale, donc par ex: Fri, 29 Jul 2011 11:56:12 +0100, pour Europe/London.

alors que je voudrais qu'elle s'affiche comme le ferait la fct strftime('%c') par exemple, Fri 29 Jul 2011 11:56:12 AM pour la locale en.

J'ai beau essayer differentes façons, rien à faire, le pb avec strftime, c qu'elle formate un timestamp et pas une date, recalculée en fct d'un timezone donné.

Est-ce que kk'un connait une methode pour afficher l'heure recalculée avec timezone, en fct d'une locale donnée, svp ?

Ya t'il également un moyen de recuperer les timezones renvoyées par DateTimeZone::listIdentifiers (), traduites dans d'autres langues, ou bien faut-il le faire à la mano à priori, je n'ai pas trouvé d'autre moyen.

merci d'avance,
bonne journée à tous
Modifié par ishmar (29 Jul 2011 - 14:05)
Désolé de pas te répondre mais comment tu fais pour récupérer la timezone du visiteur en javascript ?
merci, je connais la librairie, le pb c'est que je ne suis pas en php 5.3 et que l'admin système ne veut pas installer la librairie PECL pour pallier à ce problème..

c là mon souçi Smiley cligne
Change d'admin système Smiley biggol

Sinon y a toujours la possibilité de codé le IntlDateFormatter ou quelque chose de plus simple Smiley ohwell . Le problème va être de le faire pour chaque locale…