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 :

Date de naissance sous la forme xAns yMois et zJours


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 118
    Par défaut Date de naissance sous la forme xAns yMois et zJours
    Bonsoir à tous.

    Je développe une petit application intranet sous codeigniter qui me permet de gérer (encore chose) les "personnes" enregistrés dans la base de données Mysql.

    J'aimerais réussir à obtenir leur l'âge en Année mois jour avec un peu plus de précision que je ne l'ai avec le code sous-jacent.

    Mais encore, encore, encore une fois, je n'arrive à percevoir comment faire... le but étant de prendre en compte les années bissextiles afin d'affiner le résultat. Je vu ici et là, l'utilisation de l'expando mais je suis un peu largué...

    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
    public function get_age($idpat)
        {
            // Années
            $query = $this->db->query('SELECT TIMESTAMPDIFF(YEAR, date_age, NOW()) as annee FROM personnes WHERE id ="'.$id.'" ');
                foreach($query->result() as $row)
                {
                   $nb_annee = $row->annee;
                }
                $annee = $nb_annee == 0 ? '' : ($nb_annee > 1 ? $nb_annee.' Ans ' : $nb_annee.' An ');
     
            // Mois    
            $query = $this->db->query('SELECT TIMESTAMPDIFF(MONTH, date_age, NOW()) as mois FROM personnes WHERE id ="'.$id.'" ');
                foreach($query->result() as $row)
                {
                   $nb_mois = $row->mois;
                }
                $nb_mois = $nb_mois - ($nb_annee*12);
                $mois = $nb_mois == 0 ? '' : $nb_mois.' Mois ';
     
            // Jours
            $query = $this->db->query('SELECT TIMESTAMPDIFF(DAY, date_age, NOW()) as jour FROM personnes WHERE id ="'.$id.'" ');
                foreach($query->result() as $row)
                {
                   $nb_jour = $row->jour;
                }
                $nb_jour = $nb_jour - ($nb_annee*365 + $nb_mois*31);
                $jour = $nb_jour == 0 ? '' : ($nb_jour > 1 ? ' '.$nb_jour.' Jours. ' : ' '.$nb_jour.' Jour.');
     
            $age = $annee.$mois.$jour;
     
            echo  $age;
        }
    Ex.: Mr ZOZO Test ...........Age : 36ans 3mois et 2jours.

  2. #2
    Candidat au Club
    Femme Profil pro
    Inscrit en
    Mai 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 4
    Par défaut Tu peux faire plus simple
    Je pense que tu peux faire beaucoup plus simple.

    Utilises la fonction date de php (doc : http://php.net/manual/fr/function.date.php).

    Après pour ton calcul, il s'agit juste d'une différence.

    Tiens nous au courant, si ton problème persiste

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour krislec,
    et bienvenu au Club des "Constructeurs d'Usines à Gaz" !!

    Dans la série "pourquoi faire simple quand on peut faire compliqué" :
    -> 3 requêtes,
    -> 3 boucles foreach (alors qu'il n'y a qu'un seul résultat)
    C'est pas mal !

    Je pense aussi comme Tchii (et pas Ch'ti, comme moi !) qu'il y a beaucoup plus simple ...

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 118
    Par défaut
    Je crois que ça se voit que je ne suis pas programmeur, non ?

    Pour le reste j'y travaille...

    "To be continued..."

Discussions similaires

  1. Récupérer la date du jour sous forme d'int...
    Par Empty_body dans le forum Collection et Stream
    Réponses: 5
    Dernier message: 28/03/2007, 10h38
  2. Réponses: 8
    Dernier message: 07/03/2007, 08h34
  3. Réponses: 6
    Dernier message: 19/01/2007, 14h21
  4. [MySQL] Sous quelle forme dois-je envoyer la date vers BDD ?
    Par Death83 dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 22/12/2005, 09h15
  5. [JDBC] Requête avec une date sous la forme dd/MM/yyyy
    Par sylviefrfr dans le forum JDBC
    Réponses: 6
    Dernier message: 12/11/2005, 09h35

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