picture picture
mars 16, 2005 PHP 4 Commentaires

Calcul de l’age à partir de la date de naissance, en PHP

Petit script PHP pratique pour faire des statistiques sur les ages à partir d’une base MySQL…


2 Méthodes :

============================

Extraire en boucle les dates de naissance de la table. La date sera normalement au format MySQL, soit :
$date_naissance = 'AAAA-mm-jj';
L’année, le mois et le jours en cours sont donnée par la fonction date() :
$annow=date('Y');
$moisnow=date('m');
$journow=date('d');

On va extraire l’année de naissance, la soustraire de l’année en cours, et enfin ajuster en fonction de la date d’anniversaire (passée ou non cette année)
list($annais,$moisnais,$journais)=explode('-',$date_naissance);
$age = $annow-$annais;
if ($moisnow<$moisnais) { $age=$age-1; }
if ($journow<$journais && $moisjour==$moisnais){$age=$age-1;}
echo $age;

============================

Autre possibilité, pour automatiser le calcul en créant une fonction :
<?php
function age($naiss) {
list($annee, $mois, $jour) = split('[-.]', $naiss);
$today['mois'] = date('n');
$today['jour'] = date('j');
$today['annee'] = date('Y');
$annees = $today['annee'] - $annee;
if ($today['mois'] <= $mois) {
if ($mois == $today['mois']) {
if ($jour > $today['jour'])
$annees--;
}
else
$annees--;
}
echo $annees;
}
age('1948-05-20')
?>

C’est tout :)

4 Responses to “Calcul de l’age à partir de la date de naissance, en PHP”

4 Commentaires

  1. DenSP dit :

    Heu il sort d’ou ton « $moisjour » ?

  2. webtolosa@Liryc dit :

    exact pour la seconde méthode : le code commence à dater (2005)…
    En fait en remplaçant split() par un explode() on devrait y arriver aussi, on n’a pas besoin des expressions rationnelles sur ce coup là qui est simple.

  3. Liryc dit :

    Split renvoie malheureusement un Deprecated à partir de PHP 5.3.0

  4. hajji tarek dit :

    :)) c genial :bravo:

Commentaire

Name

Mail (ne sera pas publié)

Website

Laisser ces deux champs tels quels :
:D :-) :( :o 8O :? 8) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: