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 :

Transformer une date avec DateTime


Sujet :

Langage PHP

  1. #1
    Membre éclairé
    Homme Profil pro
    Ingénieur en électrotechnique retraité
    Inscrit en
    Décembre 2008
    Messages
    1 590
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur en électrotechnique retraité

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 590
    Points : 813
    Points
    813
    Par défaut Transformer une date avec DateTime
    Bonjour,
    Je voudrais transformer une date au format français en format SQL.
    J'ai essayé ceci qui me retourne au bon format la date d'aujourd'hui au lieu de la date donnée en paramètre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $sqlBirthday = new DateTime();
    $sqlBirthday->createFromFormat("DD'/'MM'/'YY", $data['birthday']);
    Ce n'est pas la première fois que je butte sur DateTime.

  2. #2
    Membre éclairé
    Homme Profil pro
    Ingénieur en électrotechnique retraité
    Inscrit en
    Décembre 2008
    Messages
    1 590
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur en électrotechnique retraité

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 590
    Points : 813
    Points
    813
    Par défaut
    En cherchant, j'ai trouvé ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $sqlBirthday = DateTime::createFromFormat('d/m/Y', $data['birthday']);
    $sqlBirthday->format('d/m/Y');
    Mais au lieu d'avoir simplement la date au format spécifié, j'obtiens ceci:
    object(DateTime)[26]
      public 'date' => string '1929-09-10 19:38:04.000000' (length=26)
      public 'timezone_type' => int 3
      public 'timezone' => string 'UTC' (length=3)
    dont je n'arrive pas à extraire la date au format spécifié: 'Y-m-d' (EDIT: Et non pas 'd/m/Y' comme je l'avais écrit.)

  3. #3
    Futur Membre du Club
    Homme Profil pro
    web pour association
    Inscrit en
    Mars 2013
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : web pour association

    Informations forums :
    Inscription : Mars 2013
    Messages : 53
    Points : 7
    Points
    7
    Par défaut
    jai utilisé : .date("Y-m-d H:i:s") pour avoir date et heure, donc tu enlèves : H:i:s ca devrais fonctionner Y en majuscule le reste en mini

  4. #4
    Membre éclairé
    Homme Profil pro
    Ingénieur en électrotechnique retraité
    Inscrit en
    Décembre 2008
    Messages
    1 590
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur en électrotechnique retraité

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 590
    Points : 813
    Points
    813
    Par défaut
    Ben non, justement ça ne marche pas, ça ne répond pas à la question.

  5. #5
    Membre éclairé
    Homme Profil pro
    Autre
    Inscrit en
    Juillet 2021
    Messages
    351
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Juillet 2021
    Messages : 351
    Points : 719
    Points
    719
    Par défaut
    Que donne un var_dump sur la variable $data['birthday'] ?

    Il faut récupérer/afficher le retour de la méthode format() pour avoir la date sous forme d'une string :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $data['birthday'] = '1929-09-10';
     
    $sqlBirthday = DateTime::createFromFormat('Y-m-d', $data['birthday']);
    echo $sqlBirthday->format('d/m/Y'); // 10/09/1929

  6. #6
    Membre éclairé
    Homme Profil pro
    Ingénieur en électrotechnique retraité
    Inscrit en
    Décembre 2008
    Messages
    1 590
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur en électrotechnique retraité

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 590
    Points : 813
    Points
    813
    Par défaut
    En fait, ce que je veux c'est l'inverse c'est à dire convertir une date au format 'd/m/Y' au format SQL pour l'enregistrer en base de données mais ça revient au même. Merci.

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

Discussions similaires

  1. Transformer une date caractère en datetime SAS
    Par statasma dans le forum SAS Base
    Réponses: 5
    Dernier message: 01/12/2011, 16h18
  2. [Débutant] Comparer une date avec DateTime
    Par arngrimur dans le forum C#
    Réponses: 8
    Dernier message: 30/09/2011, 10h24
  3. [Dates] Transformer une date
    Par Flobynaldo dans le forum Langage
    Réponses: 8
    Dernier message: 30/05/2006, 16h06
  4. [excel] transformer une date
    Par arcane dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 25/04/2006, 12h00
  5. Parser une date avec un format
    Par titoine1978 dans le forum C++
    Réponses: 15
    Dernier message: 03/04/2006, 11h46

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