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 :

Conversion de date avec caractère T ? [PHP 7]


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Novembre 2007
    Messages
    274
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 274
    Par défaut Conversion de date avec caractère T ?
    Bonjour à tous,

    Je viens vers vous car j'ai un soucis pour convertir une date représentée d'une manière que je n'ai jamais traité :


    Exemple de date récupérée via une API CURL : 2019-07-31T08:01:54+02:00
    Comment convertir simplement cette date en : Jour/Mois/Année à Heure:Minutes:Secondes

    D'avance merci
    Bien à vous

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    si on en crois la DOC : date()

    ta date est bien formatée, au format "c" :
    • Date au format ISO 8601 (ajouté en PHP 5)
    • 2004-02-12T15:19:21+00:00

    Donc un simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $date2 = date('d/m/Y H:i:s', strtotime($date));

  3. #3
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    18 473
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 18 473
    Par défaut
    C'est un format connu et normalisé : le format ISO-8601.

    Tu devrais pourvoir t'en sortir avec strptime
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  4. #4
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Novembre 2007
    Messages
    274
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 274
    Par défaut
    Bonjour,

    Tout d'abord, merci pour votre aide en effet :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $date = "2019-07-31T08:01:54+02:00";
    $date2 = date('Y/m/d H:i:s', strtotime($date));
    Le résulta est certes converti dans sa syntaxe mais pas dans son exactitude.

    Résulta
    2019-07-31 06:01:57
    En réalité il est impossible que l'heure corresponde, car l'heure devrait correspondre à 08:01:57 et non 06:01:57, c'est comme si le +02:00 n'était pas pris en compte.

    Ou bien c'est moi qui me trompe.

    Bien à vous et merci pour votre contribution.

  5. #5
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    18 473
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 18 473
    Par défaut
    Regardes localtime
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  6. #6
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Novembre 2007
    Messages
    274
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 274
    Par défaut
    Re Bonjour,

    C'est bon j'ai résolu mon soucis d'exactitude à l'aide d'un petit str_replace

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $date = "2019-07-31T08:01:54+02:00";
    $date = str_replace("+02:00","+00:00",$date);
    $date2 = date('Y/m/d H:i:s', strtotime($date));
    Résulta
    2019-07-31 08:01:57
    Merci à vous

  7. #7
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    18 473
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 18 473
    Par défaut
    Mauvais plan, le jour ou tu n'es plus en UTC+2, ça ne marchera pas.
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  8. #8
    Expert confirmé
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    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
    Billets dans le blog
    12
    Par défaut
    Salut,

    Le parseur de PHP ne sait pas interpréter les 2019-07-31T08:01:54+02:00 avec un DateTimeZone, il faut retraiter ce cas de figure à la main.
    Réfléchis un peu à une solution générique, pas compliqué du tout.

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

Discussions similaires

  1. [DATA] Conversion format date vers caractère
    Par Mookfr dans le forum SAS Base
    Réponses: 1
    Dernier message: 06/05/2013, 14h24
  2. conversion de dates avec now() et to_char()
    Par pierrelm dans le forum PostgreSQL
    Réponses: 0
    Dernier message: 09/06/2008, 16h31
  3. Probleme de conversion String -> Date avec SimpleDateFormat.parse(String)
    Par jeanlouis_lecodeur dans le forum Collection et Stream
    Réponses: 4
    Dernier message: 02/07/2007, 10h18
  4. probleme avec la conversion de date
    Par obydissonn dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 23/06/2007, 04h40
  5. Conversion timestamp vers date avec oracle 9.2
    Par gaboo_bl dans le forum Oracle
    Réponses: 5
    Dernier message: 27/11/2006, 15h10

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