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

PHP & Base de données Discussion :

Format date gpx [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 660
    Par défaut Format date gpx
    Bonjour,

    J’essaie de comprendre comment fonctionne le format date des fichiers gpx

    L'idée est de passer d'un datetime vers ce format. A quoi peuvent bien servir le 07T et le Z ?

    Datetime :

    Une idée de comment faut-il faire ?

    Merci

  2. #2
    Membre émérite Avatar de patrickbaras
    Homme Profil pro
    Informaticien (à sa mémère).
    Inscrit en
    Septembre 2010
    Messages
    525
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien (à sa mémère).
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 525
    Par défaut
    http://books.xmlschemata.org/relaxng/ch19-77049.html

    The time zone may be specified as Z (UTC) or (+|-)hh:mm. Time zones that aren't specified are considered undetermined.

  3. #3
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 660
    Par défaut
    Merci pour les infos

    Est-il possible d'effectuer la transformation ?

  4. #4
    Membre émérite Avatar de patrickbaras
    Homme Profil pro
    Informaticien (à sa mémère).
    Inscrit en
    Septembre 2010
    Messages
    525
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien (à sa mémère).
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 525
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php
    $xsd_date_time ="2010-08-07T10:08:25Z";
    echo date('Y-m-d H:i:s',strtotime( $xsd_date_time ) );
    ?>
    ce qui donne 2010-08-07 12:08:25

  5. #5
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 660
    Par défaut
    Merci pour la réponse, sauf que c'est l'inverse que je souhaite effectuer

    Pour effectuer la transformation dans ce sens, j'utilisais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $datetime = new DateTime($tab_info['DateTimeOriginal']);
    $newdate = $datetime->format('Y-m-d H:i:s');

  6. #6
    Membre émérite Avatar de patrickbaras
    Homme Profil pro
    Informaticien (à sa mémère).
    Inscrit en
    Septembre 2010
    Messages
    525
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien (à sa mémère).
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 525
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $date_time = date('c');
    echo $date_time;
    version OO
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $date_time = new DateTime();
    echo $date_time->format('c');

  7. #7
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 660
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $date_time = new DateTime();
    echo $date_time->format('c');

    Me sort :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    2011-01-15T10:16:04+01:00
    Alors que j'ai besoin d'un format comme :


    Merci

  8. #8
    Membre émérite Avatar de patrickbaras
    Homme Profil pro
    Informaticien (à sa mémère).
    Inscrit en
    Septembre 2010
    Messages
    525
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien (à sa mémère).
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 525
    Par défaut
    Citation Envoyé par patrickbaras Voir le message
    The time zone may be specified as Z (UTC) or (+|-)hh:mm. Time zones that aren't specified are considered undetermined.
    je te laisse le soins de remplacer "+00:00" ou "-00:00" part "Z"

  9. #9
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 660
    Par défaut
    J'ai procédé comme ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $date_time = new DateTime($tab_data['coord_gps_date']);
    $date = $date_time->format('c');
    $date = substr($date, 0, -6);
    $date = $date.'Z';
    Peut-être qu'une meilleure solution existe ?

    Merci.

  10. #10
    Membre émérite Avatar de patrickbaras
    Homme Profil pro
    Informaticien (à sa mémère).
    Inscrit en
    Septembre 2010
    Messages
    525
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien (à sa mémère).
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 525
    Par défaut
    il y a une petite faille dans ton raisonnement

    si $date = "2012-12-01T23:59:00+02:00"

    tu doit transformer en temps UTC (soit -2:00 dans ce cas) pour mettre le Z

    donc ="2012-12-01T21:59:00Z"

  11. #11
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 660
    Par défaut
    Mince, moi qui croyait que c'était bon .

    Comment faire pour ajouter ou enlever ces heures dans mon calcul ?

    Merci pour ton aide et tes lumières.

  12. #12
    Membre émérite Avatar de patrickbaras
    Homme Profil pro
    Informaticien (à sa mémère).
    Inscrit en
    Septembre 2010
    Messages
    525
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien (à sa mémère).
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 525
    Par défaut
    Citation Envoyé par heretik25 Voir le message
    Comment faire pour ajouter ou enlever ces heures dans mon calcul ?
    www.google.com et tu tape "php add time" c'est un bon début

  13. #13
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 660
    Par défaut
    Citation Envoyé par patrickbaras Voir le message
    www.google.com et tu tape "php add time" c'est un bon début
    Apparemment, on pourrait utiliser un truc du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $date->modify('+2 hours');
    Sauf qu'il faut détecter s'il s'agit d'un négatif ou d'un positif et le nombre d'heure(s) à modifier.

  14. #14
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 660
    Par défaut
    Un petit coup de main svp ?

    Merci

  15. #15
    Membre émérite Avatar de patrickbaras
    Homme Profil pro
    Informaticien (à sa mémère).
    Inscrit en
    Septembre 2010
    Messages
    525
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien (à sa mémère).
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 525
    Par défaut
    code exemple et commenté:
    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
    <?php
    echo "<pre>";
     
    $date_time_start = new DateTime(); /*date de depart*/
    var_dump($date_time_start);
     
    /* pour info */
    $date_time_utc = $date_time_start->format('c'); /*date utc : 2012-08-09T11:17:08+02:00 */
    var_dump($date_time_utc);
    /* fin pour info */
     
    $diff_gtm = $date_time_start->format('P'); /*différence gtm : +02:00 */
    //$diff = "-02:00"; /*pour test */
    //$diff = "+00:00"; /*pour test */
    //$diff = "+02:00"; /*pour test */
    var_dump($diff_gtm);
     
    $diff_gtm = str_replace(":00"," hour",$diff_gtm); /* on remplace ":00" par " hour" */
    var_dump($diff_gtm);
     
    $date_time_start->modify($diff_gtm); /* on modifie la date +/- X hour */
    var_dump($date_time_start);
     
    $date_time_end = $date_time_start->format('Y-m-d\TH:i:s\Z'); /*on reformate la date avec le T au milieu et le Z à la fin*/
    var_dump($date_time_end);
     
    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
    object(DateTime)[1]
      public 'date' => string '2012-08-09 11:38:52' (length=19)
      public 'timezone_type' => int 3
      public 'timezone' => string 'Europe/Paris' (length=12)
    string '2012-08-09T11:38:52+02:00' (length=25)
    string '+02:00' (length=6)
    string '+02 hour' (length=8)
    object(DateTime)[1]
      public 'date' => string '2012-08-09 13:38:52' (length=19)
      public 'timezone_type' => int 3
      public 'timezone' => string 'Europe/Paris' (length=12)
    string '2012-08-09T13:38:52Z' (length=20)

  16. #16
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 660
    Par défaut
    Merci beaucoup.

    je regarde ça dès que j'ai 5 minutes

    Edit : Résolu, merci pour le code et les explications

  17. #17
    Membre émérite Avatar de patrickbaras
    Homme Profil pro
    Informaticien (à sa mémère).
    Inscrit en
    Septembre 2010
    Messages
    525
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien (à sa mémère).
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 525
    Par défaut
    de rien

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Format date : y'a forcément plus simple...
    Par ZERS dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 02/12/2004, 15h28
  2. Transformation en format Date
    Par Jean-Matt dans le forum Langage SQL
    Réponses: 6
    Dernier message: 16/11/2004, 16h20
  3. Tester un format date
    Par Tapioca dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 30/06/2004, 10h18
  4. interfaces Access et format Date
    Par say dans le forum InterBase
    Réponses: 21
    Dernier message: 10/05/2004, 17h24
  5. Format date
    Par cochet dans le forum Bases de données
    Réponses: 4
    Dernier message: 02/03/2004, 08h37

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