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 au format français [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
    Femme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations forums :
    Inscription : Juillet 2012
    Messages : 26
    Par défaut conversion date au format français
    bonjour,

    aprés avoir consulté plusieurs topics et éssayé plusieurs solutions , je fais appel à vous éspérant résoudre mon problème.

    je remplis un champs input à partir d'un calendrier, la date s'affiche lors de la saisie au format 18/07/2012 , après envois du formulaire à la bdd , la date est stockée sous ce format : 2012/07/18

    voici un bout du 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
     
    function date_mysql($date_saisie){
     
            //division de la date par rapport au / ou -
            @list ($jour , $mois , $an) = split("[-./]",$date_saisie);
            //inverse la date
            return($an."-".$mois."-".$jour);
     
    }		
     
     
    //date_default_timezone_set('Africa/Algiers');
    $date_naiss= trim($_POST['date_naiss']);
    $date_naiss=date_mysql($date_naiss);
    une idée , merci de partager.

  2. #2
    Membre éprouvé Avatar de redoran
    Homme Profil pro
    Développeur-Amateur
    Inscrit en
    Juin 2010
    Messages
    1 346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur-Amateur
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 346
    Par défaut
    Salam;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <?php
    ......
    $datefr=$_POST['datedec']; // 20/06/2012
    $split = explode("/",$datefr); 
    $annee = $split[2]; 
    $mois = $split[1]; 
    $jour = $split[0]; 
    $dateus= "$annee"."-"."$mois"."-"."$jour"; 
    echo $dateus; // pour verifier 2012-06-20
    bonne utilisation.
    NB: n'oublie pas de verifier la validité de la date ( format et contenu).

  3. #3
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 693
    Par défaut
    En php 5.3 et supérieur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $dt = DateTime::createFromFormat('d/m/Y', $date);
    $dateMysql =  $dt->format("Y-m-d");
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  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
    Citation Envoyé par redoran Voir le message
    Salam;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $split = explode("/",$datefr); 
    $annee = $split[2]; 
    $mois = $split[1]; 
    $jour = $split[0]; 
    peut être remplacé par:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    list($jour,$mois,$annee)=explode("/",$datefr);

  5. #5
    Membre averti
    Femme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations forums :
    Inscription : Juillet 2012
    Messages : 26
    Par défaut
    merci pour vos réponse

    @ reoran : ton bout de code donne le même résultat que le mien !!

    @ grunk : j'ai une version de php inférieure à 5.3 , j'ai déjà testé une version php 5 et j'ai eu un pb pour la création des tables avec le moteur innodb , du coup j'ai gardé la version actuelle.

    @patrickbaras : j'ai toujours le même format de date qui s'affiche !!

    j'ai ajouté cette ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    setlocale(LC_TIME, "fr", "fr_FR", "fr_FR.ISO8859-1");

  6. #6
    Membre éprouvé Avatar de redoran
    Homme Profil pro
    Développeur-Amateur
    Inscrit en
    Juin 2010
    Messages
    1 346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur-Amateur
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 346
    Par défaut
    Là je vous suit pas. (chez moi sa marche tres bien)
    les dates sont stockées en mysql sous la forme 2012-07-18 (selon définition du champs date) mais pas en 2012/07/18 !!!!!!
    essaye avec un var_dump pour voir le résultat avant l'enregistrement de la date.
    ta fonction marche bien.
    montre nous le code d'insertion des données.

  7. #7
    Membre averti
    Femme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations forums :
    Inscription : Juillet 2012
    Messages : 26
    Par défaut
    bonjour,
    les dates sont stockées en mysql sous la forme 2012-07-18 (selon définition du champs date) mais pas en 2012/07/18 !!!!!!
    exact,pourtant en éssayant de modifier la fonction de telle sorte que la date affichée contienne uniquement des slashs , ces derniers sont remplacés par des tirets de 6 !!! je ne comprends pas : c'est propre à mysql à ce que je vois

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    function date_mysql($date_saisie){
     
            //division de la date par rapport au / ou -
            @list ($jour , $mois , $an) = split("/",$date_saisie);
            //inverse la date
            return($an."/".$mois."/".$jour);
     
    }
    essaye avec un var_dump pour voir le résultat avant l'enregistrement de la date.
    résultat du var_dump :string(10) "1977-08-23"
    montre nous le code d'insertion des données.
    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
    $date_naiss= trim($_POST['date_naiss']);
    $date_naiss=date_mysql($date_naiss);
    var_dump($date_naiss);
     
           //* connexion à la base
    $result = db_connect();
    if (!$result)
       die(mysql_error());
     
         // selection de la base de données 
     
    $select  = mysql_select_db($dbName,$result);
       if (!$select)
       die(mysql_error());
     
    /*conversion de la date au format Français 
      
      $date_naissance=explode('-',$date_naiss);
      $date_naiss=$date_naissance[2].'-'.$date_naissance[1].'-'.$date_naissance[0];
      
      $date_naiss=substr($_POST["$date_naiss"],0,2)."-".substr($_POST["$date_naiss"],2,2)."-".substr($_POST["$date_naiss"],4,4);*/
        // on insère dans la table 
     
        $insert = "INSERT INTO intervenant_interne (nom, prenom,date_naiss,email, login, passwd,telephone,mobile_intervenant,poste_interne,fax,adresse,fk_droit_acces,poste_oqp,disponibilite) VALUES('$nom','$prenom','$date_naiss','$email','$login','$passwd','$num_téléphone','$num_portable','$poste_interne','$fax ', '$adresse ','$fk_droit_acces','$poste_oqp','$disponibilite')";
    mysql_query($insert) or die(mysql_error());
     
    // on ferme la connection à la base de données.
    mysql_close ();

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 01/02/2011, 20h18
  2. Date en format français pour document.lastModified
    Par kurtbosh dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 18/07/2009, 11h59
  3. Réponses: 4
    Dernier message: 06/11/2007, 14h49
  4. date au format français
    Par jeanfi77 dans le forum Requêtes
    Réponses: 2
    Dernier message: 16/03/2007, 09h34
  5. Insérer une date au format français dans un champ
    Par EpOnYmE187 dans le forum Installation
    Réponses: 2
    Dernier message: 14/06/2005, 12h09

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