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 :

Conversion de date en format "Y-m-d" php


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2011
    Messages : 37
    Par défaut Conversion de date en format "Y-m-d" php
    Bonjour à tous,
    J'ai une date avec ce format: Et j'aimerais la convertir pour qu'elle ait ce format:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $date_conv='2011-07-06';
    J'ai essayé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $date_conv=date('Y-m-d H:i:s', $date);
    Mais ça ne marche pas (normal).
    Que dois-je faire pour que ça marche?
    Merci d'avance.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    dans ton cas, le plus simple est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php
    $date = '06.07.2011'; // exemple où le point (.) est le séparateur
     
    $tabDate = explode('.' , $date);
    $date_conv  = $tabDate[2].'-'.$tabDate[1].'-'.$tabDate[0];
    ?>

  3. #3
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    Citation Envoyé par jreaux62 Voir le message
    Bonjour,
    dans ton cas, le plus simple est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php
    $date = '06.07.2011';
     
    $tabDate = explode('.' , $date);
    $date_conv  = $tabDate[2].'-'.$tabDate[1].'-'.$tabDate[0];
     
    echo '$date ='.$date.'<br />';
    echo '$date_conv ='.$date_conv.'<br />';
    ?>
    beurk

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo date('Y-m-d', strtotime('06.07.2011'));

  4. #4
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par stealth35 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo date('Y-m-d', strtotime($date));
    Autant pour moi ...

  5. #5
    Membre Expert Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Par défaut
    Bonjour,

    certes c'est moche, mais...

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    $date = '06.07.2011';
     
    $a = microtime(true);
    $tabDate = explode('.' , $date);
    $date_conv  = $tabDate[2].'-'.$tabDate[1].'-'.$tabDate[0];
    echo (microtime(true) - $a) . '<br />';
     
    $a = microtime(true);
    $date_conv = date('Y-m-d', strtotime($date));
    echo (microtime(true) - $a) . '<br />';

    me donne :

    1.1920928955078E-5
    7.4863433837891E-5
    donc la méthode du split manuel avec ma config est environ 7 fois plus rapide que la méthode via strtotime();

    Un autre "bench" surement moins fiable me donne ceci :

    Code php : 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
     
    $date = '06.07.2011';
     
    $i=1000;
     
    $a = microtime(true);
     
    while($i--){
    	$tabDate = explode('.' , $date);
    	$date_conv  = $tabDate[2].'-'.$tabDate[1].'-'.$tabDate[0];
    }
     
    echo (microtime(true) - $a) . '<br />';
     
    $i=1000;
     
    $a = microtime(true);
     
    while($i--){
    	$date_conv = date('Y-m-d', strtotime($date));
    }
     
    echo (microtime(true) - $a) . '<br />';

    0.0022659301757812
    0.041615009307861
    et là, un facteur 20 apparait...

    C'est surement le parsing du format passé en param de strtotime() qui fait ralentir (utilisation des regex ?).

    Quoi qu'il en soit sur une utilisation unaire, utilise strtotime() qui est quand même plus propre, sinon c'est à voir imo

  6. #6
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2011
    Messages : 37
    Par défaut
    Merci pour toutes vos réponses.
    Merci encore stealth35 pour strtotime();
    Ça marche.
    J'ai pris note Madfrix.

  7. #7
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    Citation Envoyé par Madfrix Voir le message
    C'est surement le parsing du format passé en param de strtotime() qui fait ralentir (utilisation des regex ?).
    non y'a pas regex c'est de la correspondance de format

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 27/05/2011, 10h00
  2. Réponses: 4
    Dernier message: 01/02/2011, 20h18
  3. conversion de date au format SQL
    Par pierre2410 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 25/06/2007, 15h37
  4. Conversion de date en format GMT
    Par seb92 dans le forum Langage
    Réponses: 1
    Dernier message: 31/05/2007, 17h42
  5. [MySQL] Probleme de conversion de date en format francophone
    Par bilou95 dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 21/11/2006, 11h40

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