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 :
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)
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)