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 :

Calcule de l'age


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2012
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 11
    Points : 6
    Points
    6
    Par défaut Calcule de l'age
    Slt,

    Code HTML/PHP pour calculer l'age d'une personne en fonction de la date renseignée.

    Ce que je vais essayer :

    1) De faire en sorte que le jour/mois/année sélectionner reste visible une fois le formulaire validé.

    2) Modifier le code pour qu'il interroge une bdd, pour récupérer jour/mois/année d'une personne.

    Ps : Pourquoi faire simple quand on peut faire compliquer.



    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
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
     
    <html lang="fr">
    <head>
    </head>
    <body>
     
    <form name="thedate" action='calcul.php' method='POST'>
    <tr><td><b>Date de naissance : </b></td>
     
    <td>Jour : <SELECT name="day"><OPTION value="-01">Jour<OPTION value="01">1<OPTION value="02">2<OPTION value="03">3<OPTION value="04">4<OPTION value="05">5<OPTION value="06">6<OPTION value="07">7<OPTION value="08">8<OPTION value="09">9<OPTION value="10">10<OPTION value="11">11<OPTION value="12">12<OPTION value="13">13<OPTION value="14">14<OPTION value="15">15<OPTION value="16">16<OPTION value="17">17<OPTION value="18">18<OPTION value="19">19<OPTION value="20">20<OPTION value="21">21<OPTION value="22">22<OPTION value="23">23<OPTION value="24">24<OPTION value="25">25<OPTION value="26">26<OPTION value="27">27<OPTION value="28">28<OPTION value="29">29<OPTION value="30">30<OPTION value="31">31
    </SELECT>
    </td>
     
    <td>Mois : <SELECT name="month">
    <OPTION value="-01">Mois
    <OPTION value="00" >Janvier
    <OPTION value="01" >Février
    <OPTION value="02" >Mars
    <OPTION value="03" >Avril
    <OPTION value="04" >Mai
    <OPTION value="05" >Juin
    <OPTION value="06" >Juillet
    <OPTION value="07" >Août
    <OPTION value="08" >Septembre
    <OPTION value="09" >Octobre
    <OPTION value="10" >Novembre
    <OPTION value="11" >Décembre
    </SELECT></td>
     
    <!-- <td>Année : <input type=text name=year value="Année" onClick="this.value='';" style="width:50px" maxlength=4></td> -->
    <td>Année : 
        <?php
        echo '<select name="year">';
        for($i=1940; $i<=3000; $i++)
          echo'<option value="'.$i.'">'.$i.'</option>';
        echo '</select>';
        ?>
    </td>
    </tr>
    <br>
    <tr>
    <td height="17">
    <input type="submit" name="Submit" value="Envoyer">
    </td>
    </tr>
    </form>
     
    <?php
    if (isset($_POST["Submit"])) {
    	// Si le "formulaire" à été "Envoyer" le code php s'execute.
    }
    else 
    {
    	// Si le "formulaire" n'a pas été "Envoyer" le code php ne s'execute pas.
    	exit;
    }
     
    function calculer_age(){ // le format de $naissance est jj/mm/aaaa
     
    $naissance = $_POST['day'].'/'.$_POST['month'].'/'.$_POST['year'];
     
    $age_p = date('Y') - substr($naissance,6); // ex substr('30/10/2011',6) = 2011
    $mois = substr($naissance, 3, 2); //ex : substr('30/10/2011', 3, 2) = 10
    $jour = substr($naissance, 0, 2); //ex : substr('30/10/2011', 0, 2) = 30
     
    if(date('m') < $mois){
            $age = $age_p-1;
    }
     
    if(date('m') > $mois){
            $age = $age_p;
    }
     
    if(date('m') == $mois AND date('d') < $jour){
            $age = $age_p-1;
    }
     
    if(date('m') == $mois AND date('d') > $jour){
            $age = $age_p;
    }
     
    if(date('m') == $mois AND date('d') == $jour){
            $age = $age_p;
    }
     
    return $age;
    }
     
    echo 'Il / Elle a ';
    echo calculer_age();
    echo ' ans au ';
    ?>
     
    <?php
    $temps = time();
     
    // JOURS
    $jours = array('Dimanche', 'Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi');
    $jours_numero = date('w', $temps);
    $jours_complet = $jours[$jours_numero];
    // Numero du jour
    $NumeroDuJour = date('d', $temps);
     
     
    // MOIS
    $mois = array('', 'Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Août', 'Septembre', 'Octobre', 'Novembre', 'Décembre');
    $mois_numero = date("m", $temps);
    $mois_complet = $mois[$mois_numero];
     
    // ANNEE
    $annee = date("Y", $temps);
     
    // Affichage DATE
    echo "$jours_complet $NumeroDuJour $mois_complet $annee";
    ?>
     
    </body>
    </html>
    Images attachées Images attachées  
    Fichiers attachés Fichiers attachés

  2. #2
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    Salut

    Quelle est ta question ?

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2012
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 11
    Points : 6
    Points
    6
    Par défaut
    Citation Envoyé par Benjamin Delespierre Voir le message
    Salut

    Quelle est ta question ?
    Slt,

    En gros, si il y a des fautes énormes dans mon code.

    ça fonctionne, mais es ce que ça le fait bien ?

    Merci

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2012
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 11
    Points : 6
    Points
    6
    Par défaut
    Trouver !

    Code HTML/PHP qui se connecte à ma base (WAMP > PHPMYADMIN)
    (Ma base : agenda > Table : calendrier > Champs : `id`, 'civilite', `Nom`, `Prenom`, `jour`, `mois_chiffre`, `mois`, `annee`, `evenement`)

    1) Puis affiche sa date d'anniversaire puis son age, avec filtre au niveau de la civilité pour afficher dans la réponse 'Elle' ou 'Il'.

    2) Le nom de la personne sélectionner reste bien.





    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
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
     
    <html>
    <body>
    <?php
    // on se connecte à MySQL
    $db = mysql_connect('127.0.0.1', 'xxx', 'xxx');
     
    // on sélectionne la base
    mysql_select_db('agenda',$db);
    ?>
     
    <form name='form' id='form' action='anniversaire.php' method='GET' >
    <select name="personne" id="personne" onChange="submit()" >
    <option value="">selectionner une personne</option>
     
    <?php
    // on crée la requête SQL
    $sql = "SELECT * FROM calendrier WHERE evenement='Anniversaire' ORDER BY Prenom ASC, Nom ASC";
     
    // on envoie la requête
    $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
     
    // on fait une boucle qui va faire un tour pour chaque enregistrement
    while($data = mysql_fetch_assoc($req))
        {
        // on affiche les informations de l'enregistrement en cours
        echo '<option value="'.$data['id'].'" ';
    	if(isset($_GET['personne']) && $_GET['personne'] == $data['id']) { 
    		echo 'selected'; 
    	}
    	echo '>';
    	echo $data['Prenom'].' '.$data['Nom'].'</option>';
        }
    ?>
    </select>
    </form>
    <?php	
    if(isset($_GET['personne'])) { 
    	$sql = "SELECT * FROM calendrier WHERE evenement='Anniversaire' AND id=".$_GET['personne']." ";
    	$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
    	$data = mysql_fetch_assoc($req);
    	echo "<br/>Sa date d'anniversaire est le ".$data['jour']."/".$data['mois']."/".$data['annee'];
    }
     
    function calculer_age(){ // le format de $naissance est jj/mm/aaaa
     
    $sql = "SELECT * FROM calendrier WHERE evenement='Anniversaire' AND id=".$_GET['personne']." ";
    $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
    $data = mysql_fetch_assoc($req);
     
    $age_p = date('Y') - $data['annee'];
     
    if(date('m') < $data['mois']){
            $age = $age_p-1;
    }
     
    if(date('m') > $data['mois']){
            $age = $age_p;
    }
     
    if(date('m') == $data['mois'] AND date('d') < $data['jour']){
            $age = $age_p-1;
    }
     
    if(date('m') == $data['mois'] AND date('d') > $data['jour']){
            $age = $age_p;
    }
     
    if(date('m') == $data['mois'] AND date('d') == $data['jour']){
            $age = $age_p;
    }
     
    return $age;
    }
    ?>
    <br>
    <?php
     
    if(isset($_GET['personne'])) { 
    $sql = "SELECT * FROM calendrier WHERE evenement='Anniversaire' AND id=".$_GET['personne']." ";
    $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
    $data = mysql_fetch_assoc($req);
    }
     
    if ($data['civilite'] == "Mr") {
     
    echo 'Il a ';
    echo calculer_age();
    echo ' ans au ';
    }
     
    if ($data['civilite'] == "Mme" ||$data['civilite'] == "Melle") {
     
    echo 'Elle a ';
    echo calculer_age();
    echo ' ans au ';
    }
    ?>
     
    <?php
    $temps = time();
     
    // JOURS
    $jours = array('Dimanche', 'Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi');
    $jours_numero = date('w', $temps);
    $jours_complet = $jours[$jours_numero];
    // Numero du jour
    $NumeroDuJour = date('d', $temps);
     
     
    // MOIS
    $mois = array('', 'Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Août', 'Septembre', 'Octobre', 'Novembre', 'Décembre');
    $mois_numero = date("m", $temps);
    $mois_complet = $mois[$mois_numero];
     
    // ANNEE
    $annee = date("Y", $temps);
     
    // Affichage DATE
    echo "$jours_complet $NumeroDuJour $mois_complet $annee";
    ?>
     
    <?php
    // on ferme la connexion à mysql
    mysql_close();
    ?>
    </body>
    </html>
    Images attachées Images attachées  

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

    Pour calculer l'âge, il est largement préférable d'éviter la batterie de cuisine et de faire simplement en utilisant les fonctions natives de PHP, idem pour le formatage littéral : il faut utiliser ICU :
    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
    <?php
     
    function age(DateTime $from)
    {
        $today = new DateTime();
        $diff  = $today->diff($from);
        return array('y' => $diff->y, 'm' => $diff->m, 'd' => $diff->d, 'days' => $diff->days);
    }
     
    $date = DateTime::createFromFormat('d/m/Y', '01/01/1990');
    $age  = age($date);
     
    echo "Né le {$date->format('d/m/Y')}, age : {$age['y']} année(s), {$age['m']} mois et {$age['d']} jour(s), soit {$age['days']} jours";
    echo '<br />';
    echo \IntlDateFormatter::create('fr_FR', \IntlDateFormatter::FULL, \IntlDateFormatter::NONE)->format($date);
     
    ?>

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2012
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 11
    Points : 6
    Points
    6
    Par défaut
    Salut.

    Merci rawsrc.

    Ah oui ! en effet ! Ma cuisine est sacrement en b....

    Plus clair et plus simple tout en faisant mieux !

    Ex : pour cette date : '04/11/1952', ça affiche :
    Né le 04/11/1952, age : 59 année(s), 11 mois et 29 jour(s), soit 21914 jours

    Juste pour le formatage (ICU), j'ai un message d'erreur :
    Class 'IntlDateFormatter' not found.
    Donc j'ai "//" la ligne : echo IntlDateFormatter::create('fr_FR' ,IntlDateFormatter::FULL ,IntlDateFormatter::NONE)->format($date); -
    Et le résultat est le même.

    Version PHP : 5.3.13
    Version Apache : 2.2.22

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

    Les fonctions d'internationalisation sont livrées en natif depuis PHP 5.3.0+, il suffit juste des les activer en décommentant :
    ;extension=php_intl.dll
    dans ton php.ini

  8. #8
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2012
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 11
    Points : 6
    Points
    6
    Par défaut
    Adapter à ma BDD, ça donne ça.




    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
     
    ..........................
    <?php	
    if(isset($_GET['personne'])) { 
    	$sql = "SELECT * FROM calendrier WHERE evenement='Anniversaire' AND id=".$_GET['personne']." ";
    	$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
    	$data = mysql_fetch_assoc($req);
    	echo "Sa date d'anniversaire est le ".$data['jour']." ".$data['mois']." ".$data['annee'];
     
    function calculer_age(DateTime $from){
     
        $today = new DateTime();
        $diff  = $today->diff($from);
        return array('y' => $diff->y, 'm' => $diff->m, 'd' => $diff->d, 'days' => $diff->days);
    }
     
    $anni = $data['jour']."/".$data['mois_chiffre']."/".$data['annee'];
    $date = DateTime::createFromFormat('d/m/Y',$anni);
    $calculer_age  = calculer_age($date);
    }
    ?>
    <br>
    <?php
     
    if(isset($_GET['personne'])) { 
    $sql = "SELECT * FROM calendrier WHERE evenement='Anniversaire' AND id=".$_GET['personne']." ";
    $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
    $data = mysql_fetch_assoc($req);
    }
     
    if ($data['civilite'] == "Mr") {
    echo "Il est né le {$date->format('d/m/Y')}, soit {$calculer_age['y']} ans, {$calculer_age['m']} mois et {$calculer_age['d']} jour(s).<br />";
    echo "Bref {$calculer_age['days']} jours au ";
    }
     
    if ($data['civilite'] == "Mme" ||$data['civilite'] == "Melle") {
    echo "Elle est née le {$date->format('d/m/Y')}, soit {$calculer_age['y']} ans, {$calculer_age['m']} mois et {$calculer_age['d']} jour(s).<br />";
    echo "Bref {$calculer_age['days']} jours au ";
    }
    ?>
    .................

    Merci rawsrc . Extensions activée.
    Images attachées Images attachées  

  9. #9
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    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
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Tu ne trouves pas que tu te répètes ?
    Sa date d'anniversaire est le ...
    Elle est née le ...
    Je pense que ça veut dire pareil, enfin, pas sûr, corrige-moi si nécessaire

  10. #10
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2012
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 11
    Points : 6
    Points
    6
    Par défaut
    Tu a tout a fait raison, je m'en suis rendu compte aussi.

    J'ai corrigé, ça donne ça :



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    ....................................................................
    if ($data['civilite'] == "Mr") {
    echo "Il a {$calculer_age['y']} ans, {$calculer_age['m']} mois et {$calculer_age['d']} jour(s).<br />";
    echo "Bref {$calculer_age['days']} jours au ";
    }
     
    if ($data['civilite'] == "Mme" ||$data['civilite'] == "Melle") {
    echo "Elle a {$calculer_age['y']} ans, {$calculer_age['m']} mois et {$calculer_age['d']} jour(s).<br />";
    echo "Bref {$calculer_age['days']} jours au ";
    }
    ?>
    ............................................................
    Images attachées Images attachées  

  11. #11
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    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
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Si tu utilises les fonctions d'internationalisation, quelle est l'utilité du coup de mettre en dur le mois littéral dans la base de données ? Juste la date devrait suffire, non ?
    MySql gère parfaitement les dates.

    Dans ton code, mettre une variable $calculer_age n'est pas très parlant, je préfère de loin $age = calculer_age(...);

  12. #12
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2012
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 11
    Points : 6
    Points
    6
    Par défaut
    Tu a surement raison.

    1) J'ai pas encore vraiment comprit l'utilisation (l'intérêt oui) des fonctions d'internationalisation. Mais oui c'est mieux que de mettre le mois littéral dans la base de données !

    2) comme ça ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    ..............................................
    $anni = $data['jour']."/".$data['mois_chiffre']."/".$data['annee'];
    $date = DateTime::createFromFormat('d/m/Y',$anni);
    $age  = calculer_age($date);
    }
    ..............................................
    if ($data['civilite'] == "Mr") {
    echo "Il a {$age['y']} an(s), {$age['m']} mois et {$age['d']} jour(s).<br />";
    echo "Bref {$age['days']} jours au ";
    }
    ..............................................
    Merci

  13. #13
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    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
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    A moins de faire de massifs calculs sur les dates, il n'y a aucune utilité à séparer dans des colonnes distinctes : jour mois année.
    Tu rajoutes dans ta table une colonne date_naiss au format DATE que tu renseigneras ainsi :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT INTO table (date_naiss) VALUES ('1990-01-01')
    En informatique, il es très fortement conseillé de ne manipuler les dates qu'au format YYYY-MM-DD, les autres agencement ne relèvent que du formatage.
    Quand tu récupères ta valeur de ta requête, tu n'as rien à faire si ce n'est que :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $date = new DateTime($data['date_naiss']);
    Ainsi tu reste raccord sur toute la ligne pas de problème de conversion, absolument rien. Juste du formatage en fonction de la langue du client avec un simple :

Discussions similaires

  1. calcul de l'age dans un formulaire
    Par spacergirly dans le forum Access
    Réponses: 2
    Dernier message: 13/06/2007, 15h09
  2. Probleme avec une fonction de calcul d'un age
    Par dondano dans le forum Langage
    Réponses: 1
    Dernier message: 27/04/2007, 11h50
  3. calcul de l'age
    Par Poor_Beginner dans le forum Access
    Réponses: 3
    Dernier message: 20/02/2007, 11h50
  4. Calcul de l'age d'une personne
    Par batstoon dans le forum Oracle
    Réponses: 2
    Dernier message: 04/12/2006, 13h50
  5. calcul d'un age mysql
    Par kitty2006 dans le forum Requêtes
    Réponses: 1
    Dernier message: 25/08/2006, 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