Calculer l'age à partir d'une date de naissance (idéal pour un site communautaire ;-)).

Soyez le premier à donner votre avis sur cette source.

Snippet vu 10 685 fois - Téléchargée 27 fois

Contenu du snippet

Ce code sert à calculer l'age (d'un membre ?) à partir d'une date de naissance.
J'ai commenté le code relativement long mais complet. J'ai déliré un peu vous le verrez : déjà en utilisant des if je me suis compliqué la vie :-) et si vous insérez la date du jour : surprise ! ;-)

Source / Exemple :


<?
//Script By VirtuelKiller sur Code-sources, Neo dans la réalité
//Webmaster de www.arena-games.net

$date_recent=date("d-m-Y");
//la date du jour

list ($jour_recent , $mois_recent , $an_recent) = split("[-./]",$date_recent);

//la variable $date_naissance est la date de naissance
//utile pour calculer l'age ;-)
//format de la date de naissance : jj/mm/aaaa ou jj-mm-aaaa

if(!empty($date_naissance))
{
list ($jour , $mois , $an) = split("[-./]",$date_naissance);
}

//Vérification de la date de naissance
if($an_recent<$an ){
echo"<script language=\"Javascript\">alert(\"Y'a un ketit problème : vous n'êtes pas encore né ! ;-)\");history.back();</script>";
exit;
}
if($mois_recent<$mois AND $an_recent==$an){
echo"<script language=\"Javascript\">alert(\"Y'a un ketit problème : vous n'êtes pas encore né ! ;-)\");history.back();</script>";
exit;
}

if($jour_recent<$jour AND $mois_recent==$mois AND $an_recent==$an ){
echo"<script language=\"Javascript\">alert(\"Y'a un ketit problème : vous n'êtes pas encore né ! ;-)\");history.back();</script>";
exit;
}

//Calcul de l'age
If($mois_recent>$mois){
$age=$an_recent-$an;
}

If($mois_recent<$mois){
$age=$an_recent-$an-1;
}

If($mois_recent==$mois AND $jour_recent<$jour){
$age=$an_recent-$an-1;
}

If($mois_recent==$mois AND $jour_recent>$jour){
$age=$an_recent-$an;
}

If($mois_recent==$mois AND $jour==$jour_recent){
$age=$an_recent-$an;
}

//la variable qui donne l'age est le variable $age
if($age<2){
if($mois_recent==$mois AND $jour_recent==$jour){
if($mois_recent==$mois AND $jour_recent==$jour AND $an_recent==$an){
echo"Voici votre age : <BR> $age an et BIENVENUE SUR TERRE !<BR>www.arena-games.net";
}Else{
echo"Voici votre age : <BR> $age an et BON ANNIVERSAIRE !<BR>www.arena-games.net";
}
}Else{
echo"Voici votre age : <BR> $age an <BR>www.arena-games.net";
}
}Else{
if($mois_recent==$mois AND $jour_recent==$jour){
echo"Voici votre age : <BR> $age ans et BON ANNIVERSAIRE !<BR>www.arena-games.net";
}Else{
echo"Voici votre age : <BR> $age ans <BR>www.arena-games.net";
}
}

//Excusez moi pour la longueur du code ! J'aurais pu me servir de case plutot que de if mais bon... c la vie !
//Si vous trouvez des bugs signalez le moi
//Je vous laisse faire le formulaire qui permettra d'insérer la date de naissance
//++
//VirtuelKiller sur Code-sources, Neo dans la réalité
//www.arena-games.net
?>

Conclusion :


Si vous avez des questions, des remarques, etc... Les commentaires sont fait pour cela !
++
V.K. ou Neo
www.arena-games.net

A voir également

Ajouter un commentaire

Commentaires

matrey
Messages postés
399
Date d'inscription
jeudi 31 janvier 2002
Statut
Membre
Dernière intervention
6 septembre 2004
-
très très très très très très très très long
je passe sur mon 2e PC et je te donne ma version, bcp plus ourte
matrey
Messages postés
399
Date d'inscription
jeudi 31 janvier 2002
Statut
Membre
Dernière intervention
6 septembre 2004
-
// Fonction qui renvoie l'age à partir de la date de naissance
// Par matrey <matreypub@hotmail.com>
function age($date){
$date_current=mktime(0,0,0,date("n"),date("d"),date("Y"));
if (!$date){
return 0;
}else{
ereg("^([0-9]{2,4})-([0-9]{1,2})-([0-9]{1,2})$",$date,$m_date);
if ($m_date[1] < 1970) {
$plus = 1970 - $m_date[1];
$annee = 1970;
}else{
$plus = 0;
$annee = $m_date[1];
}
$date_born=mktime(0,0,0,$m_date[2],$m_date[3],$annee);
$diff = floor((($date_current - $date_born) / (3600 * 24))/365)+$plus;
if ($diff < 0){
return 0;
}elseif ($diff == 0){
$diff = floor((($date_current - $date_born) / (3600 * 24))/30);
return $diff." mois";
}elseif ($diff == 1){
return $diff." an";
}else{
return $diff." ans";
}
}
}
matrey
Messages postés
399
Date d'inscription
jeudi 31 janvier 2002
Statut
Membre
Dernière intervention
6 septembre 2004
-
désolé les tabulations passent pas, c'est juste moins lisible..
virtuelkiller
Messages postés
44
Date d'inscription
samedi 8 mars 2003
Statut
Membre
Dernière intervention
9 mars 2016
-
Hey ouai !
C'est pas mal aussi comme ça !
++
www.arena-games.net
V.K.
cs_Kirua
Messages postés
3006
Date d'inscription
dimanche 14 avril 2002
Statut
Membre
Dernière intervention
31 décembre 2008
-
c'est en fait simplement (désolé ;-)) un calcul de différence (entre deux date)

donc à mon, avis -> time() - mktime(... les arguments pr la date de naissance ...)

ça donnera le time de différence

puis date("Y", $le_time_obtenu) - 1970; et ça devrait aller non ?

je fias u nteste et je reviens

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.