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 date php/MySQL [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    60
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 60
    Par défaut Conversion date php/MySQL
    Bonjour à tous,

    J'ai actuellement une date de format : '16 juin 2008' par exemple, qui est insérer en format 'varchar' pour l'instant en base de données.

    Et il faut que je les rentre en base au format date de MySQL qui est, pour cet exemple, '2008-06-16', afin de pouvoir les exploiter par la suite...

    En vous remerciant de votre aide

    bonne journée,

    laetitia

  2. #2
    Membre confirmé Avatar de nimbus_77
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    109
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 109
    Par défaut
    quand à mois je le ferais avec des substr()

    ca pourrait ressembler à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $jour = substr($date,25,2)
    $mois = substr($date  .. )
    $an = substr($date,-4)
     
    $new_date = $an . '-' . $mois . '-' . $jour  ;
    il faudra forcément convertir les mois texte en nombre.

    Mais il existe peut être une façon plus simple

  3. #3
    Membre chevronné
    Homme Profil pro
    Développeur
    Inscrit en
    Juin 2006
    Messages
    645
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Juin 2006
    Messages : 645
    Par défaut
    Tu peux utiliser la fonction str_to_date() dans ta requête (si tu as MySQL 4.1.desbrouettes ou supérieur). Attention, c'est bien une fonction de MySQL, pas une fonction PHP.

    Elle s'utilse sous la forme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    STR_TO_DATE(str,format)
    Tu en trouveras plus ici : http://dev.mysql.com/doc/refman/5.0/...functions.html

    Au passage, tu peux aussi jeter un oeil à la FAQ : http://php.developpez.com/faq/?page=dates

    Si tu as des difficultés, n'hésite pas à revenir

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 50
    Par défaut
    Je rajoute juste la fonction php explode qui est bien utile.
    Tu fais un explode en prenant comme caractére de séparation l'espace.
    Ensuite tu fais un switch sur le mois pour le convertir en nombre.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    60
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 60
    Par défaut
    je vais essayer ta fonction alband85 et aussi je n'avais pas penser au switch pour les mois (c'est vraiment ce qui m'embête dans l'histoire...), je reviens vous voir des que possible, merci en tout cas pour vos réponses rapides

    Bon merci j'ai plus ou moins résolu mon problème, voici le code :

    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
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
      function dt_envoi_publi_MySQL($date){
        list($d,$m,$y) = explode(" ",$date);
        switch ($m){
            case 'janvier':
                $m="01";
            break;
     
            case'février':
                $m="02";
            break;
     
            case'mars':
                $m="03";
            break;
     
            case'avril':
                $m="04";
            break;
     
            case'mai':
                $m="05";
            break;
     
            case'juin':
                $m="06";
            break;
     
            case'juillet':
                $m="07";
            break;
     
            case'aout':
                $m="08";
            break;
     
            case'septembre':
                $m="09";
            break;
     
            case'octobre':
                $m="10";
            break;
     
            case'novembre':
                $m="11";
            break;
     
            case'décembre':
                $m="12";
            break;
        }
        $datenew=($y."-".$m."-".$d);
        return $datenew;
      }
    Bon la fonction est un peu longue mais bon tant pis, j'arrive a récupérer comme il faut les valeurs et à les mettre dans le format que je souhaite...

    Me reste plus qu'un probleme d'insertion mais ca c'est particulier à mon projet et ce n'est plus le sujet

    Encore merci du coup de main et bonne fin d'apres midi!!

    Laetitia

  6. #6
    Membre chevronné
    Homme Profil pro
    Développeur
    Inscrit en
    Juin 2006
    Messages
    645
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Juin 2006
    Messages : 645
    Par défaut
    Pourquoi « plus ou moins » ? Il reste des choses qui ne te satisfont pas ?

    Pour la longueur de la fonction, sachant qu'il faut « switcher » sur les 12 mois, on peut difficilement faire mieux.

    Et si tout va bien, pense au tag

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

Discussions similaires

  1. Probleme de date php/mysql
    Par parme dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 13/08/2009, 09h55
  2. [MySQL] date php mysql
    Par TomDelonge dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 12/03/2009, 16h11
  3. Conversion appli php/MySQL -> php/MsSQL - Prenage de tête
    Par Joelindien dans le forum MS SQL Server
    Réponses: 19
    Dernier message: 02/09/2008, 17h40
  4. [MySQL] problème date php/mysql : 0000-00-00 00:00:00
    Par ths_otraa dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 13/02/2008, 12h09
  5. Dates PHP/MySQL Format
    Par MusCan dans le forum Administration
    Réponses: 3
    Dernier message: 12/03/2007, 10h37

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