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

EDI, CMS, Outils, Scripts et API PHP Discussion :

Conversion heure UTC en heure locale


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 6
    Points : 2
    Points
    2
    Par défaut Conversion heure UTC en heure locale
    Bonjour à tous et merci d'avance pour votre aide,

    Je gère le site d'une société de location d'avions, et je tiens à préciser que je débute en PHP, j'utilise seulement des scripts et autres solutions trouvées à droite à gauche sur le web.

    J'espère poster dans la bonne catégorie, ça traite de PHP, de SQL, et d'un script, enfin je pense, du coup je pense être à peu près au bon endroit.

    Mon problème est le suivant : pour la location, nous avons un logiciel de gestion de planning, qui enregistre des données de dates et heures sur une base de données mySQL. Ces données sont enregistrées en heures UTC.

    Pour chacun des membres souhaitant louer l'avion, nous avons créé une page leur permettant d'accéder à leur liste de "créneaux", cette page allant chercher les données dans la base de donnée. Seulement, les heures sont évidemment au format UTC.

    Ma question est la suivante : existe-t-il un moyen de convertir automatiquement ces heures UTC en heure locale ?
    Je vous joins le code de la page en question

    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
     
    <?php 
    $id = $_POST['id'];
    // on se connecte à MySQL 
    $db = mysql_connect('xxx', 'xxx', 'xxx'); 
    // on sélectionne la base 
    mysql_select_db('xxx',$db);  
    // on crée la requête SQL 
    $sql1 = "SELECT * FROM authentication WHERE id='$id'"; 
    // on envoie la requête 
    $req1 = mysql_query($sql1) or die('Erreur SQL !<br>'.$sql1.'<br>'.mysql_error()); 
    // on fait une boucle qui va faire un tour pour chaque enregistrement 
    while($data1 = mysql_fetch_assoc($req1))
        { 
        // on affiche les informations de l'enregistrement en cours 
    	echo '<h1> Reservations de  :  <b>'.$data1['first_name'].'</b>  <b>'.$data1['last_name'].'</b></h1> <br>';
     
        } 
    // on crée la requête SQL 
    $sql = "SELECT * FROM booking WHERE member_id='$id' AND TO_DAYS(start_date)>=TO_DAYS(now()) ORDER BY start_date "; 
    // on envoie la requête 
    $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); 
    // on fait une boucle qui va faire un tour pour chaque enregistrement 
    while($data = mysql_fetch_assoc($req)) 
        { 
        // on affiche les informations de l'enregistrement en cours 
    	    echo 'Date et Heure du rendez-vous :  <b>'.$data['start_date'].'</b><br>'; 
     
        }
    // on ferme la connexion à mysql 
    mysql_close(); 
    ?>
    C'est donc l'affichage de 'date et heure du rendez vous' qui pose problème, et la table 'start_date', que je souhaiterais voir apparaître en heure locale.

    Voilà, je vous remercie d'avance pour vos réponses.
    Fred

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Avec l'objet Datetime :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php
    $objDate = new DateTime($data['start_date'], new DateTimeZone('UTC'));
    $objDate->setTimezone(new DateTimeZone('Europe/Paris'));
    echo $objDate->format('Y-m-d H:i:s');
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    Bonjour, et merci beaucoup de l'aide !
    Alors, pour le moment, j'insère les lignes 2-3-4 du code juste après ma balise php, et ça ne change rien, sauf que ça affiche sur mon site la date et l'heure. Les autres heures restent en UTC ...
    Ai-je loupé quelque chose ?
    Merci encore
    Fred

  4. #4
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Salut,

    en fonction de l'installation du MySQL, tu peux aussi utiliser nativement CONVERT_TZ().

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Mars 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    Je suis déjà tombé sur cette page, mais je t'avoue que je ne sais pas du tout comment l'utiliser, ni où insérer les codes !
    Comme j'ai dit, je débute vraiment en PHP !

  6. #6
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Quand tu débutes, tu dois aussi te prendre par la main pour essayer ce qui t'est proposé et ne pas attendre du tout cuit.
    Prends donc le code de l'ami sabotage et mets le dans cette boucle :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    while($data = mysql_fetch_assoc($req)) { ... }
    Exécute et contemple.

Discussions similaires

  1. [2008] Conversion heure UTC en heure locale avec horaires été hiver
    Par PapouDomi dans le forum Développement
    Réponses: 5
    Dernier message: 09/07/2015, 18h48
  2. TimeZone, heures UTC et heures fuseau
    Par yoyostras dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 14/08/2009, 17h21
  3. [Toutes versions] Heure UTC vers heure locale
    Par Morveus dans le forum Excel
    Réponses: 1
    Dernier message: 28/07/2009, 09h50
  4. Conversion temps UTC en temps Local
    Par jerome.fortias dans le forum C#
    Réponses: 2
    Dernier message: 30/08/2007, 15h38
  5. mfc:conversion de UTC à l'heure locale
    Par gbardy dans le forum MFC
    Réponses: 2
    Dernier message: 04/08/2006, 22h58

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