IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Dates] Lister les timezones à la façon "Windows"


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    215
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2005
    Messages : 215
    Par défaut [Dates] Lister les timezones à la façon "Windows"
    Bonjour à tous,

    j'essaie de créer une liste des timezones comme celle qu'on peut retrouver dans windows dans les propriétés Date et Heure.

    Exemple :
    (GMT +01:00) Brussels, Copenhagen, Madrid, Paris
    ...
    J'ai pris un premier exemple avec Brussels :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    foreach($abbreviations as $abbreviation => $timezones)
    {
    	foreach($timezones as $key => $timezone)
    	{
    		$dst = $timezone['dst'];
    		$offset = $timezone['offset'];
    		$timezone_id = $timezone['timezone_id'];
     
    		if($dst == true)
    		{
    			if($timezone['timezone_id'] == 'Europe/Brussels')
    			{
    				echo $abbreviation;
    				echo '<pre>';
    				print_r($timezone);
    				echo '</pre>';
    			}
    		}
    	}
    }
    resultat :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    cest
     
    Array
    (
        [dst] => 1
        [offset] => 7200
        [timezone_id] => Europe/Brussels
    )
     
    west
     
    Array
    (
        [dst] => 1
        [offset] => 3600
        [timezone_id] => Europe/Brussels
    )
    Mon problème est que la fonction timezone_abbreviations_list() retourne deux entrées pour Brussels, une pour le fuseau horaire d'été : CEST et une pour l'heure d'hiver WEST. Donc impossible d'afficher à la façon "Windows".

    Est-ce que quelqu'un aurait une idée ?

  2. #2
    Membre éclairé Avatar de mdr_cedrick
    Profil pro
    Développeur multimédia
    Inscrit en
    Janvier 2008
    Messages
    374
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur multimédia

    Informations forums :
    Inscription : Janvier 2008
    Messages : 374
    Par défaut
    si ça retourne 2 entrées il est possible que ça fasse de même pour d'autres villes
    pourquoi n'essayes-tu pas d'afficher seulement la première (ou la deuxième) entrée pour chaque ville que tu va appeler (il faut juste savoir quelle entrée correspond à l'horaire d'été ou à l'heure d'hiver)
    de cette manière tu sera sûr d'avoir qu'une entrée

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    215
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2005
    Messages : 215
    Par défaut
    Citation Envoyé par mdr_cedrick Voir le message
    il faut juste savoir quelle entrée correspond à l'horaire d'été ou à l'heure d'hiver de cette manière tu sera sûr d'avoir qu'une entrée
    Comment faire pour savoir quelle entrée correspond à l'horaire d'été ou à l'heure d'hiver ?

    Mon test :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     // été : le 1 juillet
    $time = gmdate('y/m/d h:i:s', gmmktime(null, null, null, 7, 1));
     
    $date = date_create($time, new DateTimeZone('Europe/Brussels'));
    $gmdate = date_create($time, new DateTimeZone('gmt'));
    $date et $gmdate ont les même valeurs !

  4. #4
    Membre éclairé Avatar de mdr_cedrick
    Profil pro
    Développeur multimédia
    Inscrit en
    Janvier 2008
    Messages
    374
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur multimédia

    Informations forums :
    Inscription : Janvier 2008
    Messages : 374
    Par défaut
    et bien si elles ont les mêmes valeurs tu sélectionnes la première donnée dans n'importe quel cas
    $tonTab[...][0];

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    215
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2005
    Messages : 215
    Par défaut
    Comment transformer une date GMT en timezone voulu ?
    Exemple transformer de GMT vers Europe/Brussels?

Discussions similaires

  1. Lister les fichiers antérieurs à une date X
    Par bragon dans le forum Scripts/Batch
    Réponses: 4
    Dernier message: 05/04/2007, 19h54
  2. lister les fichiers d'un repertoire par date
    Par ra77 dans le forum Langage
    Réponses: 1
    Dernier message: 02/06/2006, 03h02
  3. [C#] Lister les controls windows
    Par tontonpiero dans le forum Windows Forms
    Réponses: 10
    Dernier message: 05/05/2006, 19h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo