| Auteur | |
|---|---|
| ishmar | |
| 25 Posts |
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) |
| jb_gfx | |
| 2853 Posts |
Désolé de pas te répondre mais comment tu fais pour récupérer la timezone du visiteur en javascript ? Je ne sais pas si je suis cultivé ou si je viens d'inventer deux nouveaux mots. |
| ishmar | |
| 25 Posts |
salut, je me sers du script de jskata, http://www.javascriptkata.com/2010/10/14/auto-detect-timezones-time-zone-offsets-and-daylight-saving-in-javascript/. Il récupére l'heure de ta bécane, en déduit l'offset et la gestion de la DST. A partir de là, je peux récupérer les timezones correspondantes avec les routines de php de la classe DateTimezone. |
| jo_link_noir | |
| 298 Posts |
Salut, Les classes intl (i18n en général) font bien l'affaire DateTime::format ne tenant pas compte des locales IntlDateFormatter::format |
| ishmar | |
| 25 Posts |
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 |
| jo_link_noir | |
| 298 Posts |
Change d'admin système Sinon y a toujours la possibilité de codé le IntlDateFormatter ou quelque chose de plus simple . Le problème va être de le faire pour chaque locale… |