Suivez les fils RSS
 

Des livres incontournables pour tout maîtriser

  • CSS avancées - vers HTML5 et CSS3
  • HTML5
  • CSS2
  • PHP5 avanc�
  • Memento MySQL
  • Memento CSS 3
  • Memento XHTML
  • WordPress 3 100% pratique
  • jQuery et jQuery UI
Auteur
ishmar
#
Citer
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 :
$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)

^
jb_gfx
#
Citer
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.

http://www.pixemedia.com/ 
^
ishmar
#
Citer
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
#
Citer
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

doc jquery, doc javascript, doc php
(php.net/la_fonction_chercher)

^
ishmar
#
Citer
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 cligne

^
jo_link_noir
#
Citer
298 Posts
Change d'admin système biggol

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

doc jquery, doc javascript, doc php
(php.net/la_fonction_chercher)

^