Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 15-09-2009 13:37:36

nuranto
Membre
Date d'inscription: 20-01-2009
Messages: 24

[Zend_Locale][Zend_Date][1.9] Datetime en fonction du pays

Bonjour,

J'aimerais juste récupérer la date et l'heure en fonction des pays. Ca marche dans la plupart des cas (fr, en_US, jp, ...)
Le probleme se pose pour les codes pays qui n'ont pas de locale associé.

Exemple : la guadeloupe : gp ...

Voici ma facon de proceder :

Code:

 $date = new Zend_Date(); 
echo $date->getTime(new Zend_Locale('fr_FR'));
echo $date->getTime(new Zend_Locale('en_US'));

Hors ligne

 

#2 15-09-2009 13:57:50

philippe
Administrateur
Lieu: Grenoble
Date d'inscription: 01-03-2007
Messages: 1624

Re: [Zend_Locale][Zend_Date][1.9] Datetime en fonction du pays

Hum, a priori t'as tout faux... la locale c'est pour la langue utilisée et le pays dans lequel on est. Ca n'indique rien sur les fuseaux horaires (tu as plusieurs fuseaux horaires aux états unis, en_US, ça ne peut pas suffire par exemple).

Pour ça il faut utiliser les timezone, pas les locales :

Code:

    date_default_timezone_set('Europe/Paris');
    $now = new Zend_Date();
    echo "now default= ".$now."<br/>";
    $now->setTimezone("America/Chicago");
    echo "now America/Chicago= ".$now."<br/>";
    $now->setTimezone("America/Guadeloupe");
    echo "now America/Guadeloupe= ".$now."<br/>";

A+, Philippe


twitter : @plv ; kitpages.fr : Création de sites internet à Grenoble et Paris

Hors ligne

 

#3 15-09-2009 14:28:16

nuranto
Membre
Date d'inscription: 20-01-2009
Messages: 24

Re: [Zend_Locale][Zend_Date][1.9] Datetime en fonction du pays

Oui, j'avoue...

Mais pourquoi Zend_Date utilise les locales alors ? Dans mon esprit une locale c'etait toutes les differences locales. Langue, lieu, monnaie, unités/formats de mesures... Donc je me disais... date/heure ca me semble pas stupide..

Mais en effet, ca pas l'air d'etre géré comme ca. Bref, dans ce cas, je suppose que ZF ne peut pas m'aider, et il faudra que j'associe Pays-Ville a un timezone... :s
Ou alors un calcul avec latitude et longitude devrait pouvoir faire l'affaire...

Merci en tout cas

Dernière modification par nuranto (15-09-2009 14:33:24)

Hors ligne

 

#4 15-09-2009 16:13:30

mikaelkael
Administrateur
Lieu: Donges
Date d'inscription: 18-06-2007
Messages: 1176
Site web

Re: [Zend_Locale][Zend_Date][1.9] Datetime en fonction du pays

Hello,

La locale sert entre autres à générer les formats de date différents par pays.

A+


Less code = less bugs
Contributeur ZF - ZCE - ZFCE - Doc ZF (CHM & PDF) - Vice-trésorier AFUP 2011
Ubuntu 11.04 - ZendServer

Hors ligne

 

#5 15-09-2009 16:32:52

philippe
Administrateur
Lieu: Grenoble
Date d'inscription: 01-03-2007
Messages: 1624

Re: [Zend_Locale][Zend_Date][1.9] Datetime en fonction du pays

@nurato:
Les timezone du genre "Europe/Paris" c'est un truc normalisé, on n'invente pas la timezone qu'on veut :
http://www.php.net/manual/en/timezones.php

Par contre un calcul basé sur les latitudes ne marche pas (la France aurait plusieurs fuseaux horaires).

regarde du coté de DateTimeZone pour avoir des fonctions de manipulation des timezone http://www.php.net/manual/en/class.datetimezone.php.

A+, Philippe


twitter : @plv ; kitpages.fr : Création de sites internet à Grenoble et Paris

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages