Page 1 sur 1

Afficher l'âge d'une personne

Posté : 08 sept. 2005, 12:07
par K20
Bonjour, voilà, j'ai fait un petit bout de code qui affiche l'age d'une personne en prenant en compte le jour, le mois et l'année en cours ...

Je stocke la date de naissance de la personne sous la forme 01/01/1987 (exemple) dans une base de donnée MySQL.

Voici le scirpt :
1ere forme :
// Date d'aujourd'hui
$jour = date("d",time());
$mois = date("m",time());
$annee = date("Y",time());
// Détermination de l'âge
$age = $row[age]; // j'ai récupéré avant les infos MySQL ;)
$age = explode("/", $age);
if ($jour >= $age[0] and $mois = $age[1] or $mois > $age[1])
		{
		$age = $annee - $age[2];
		}
else
		{
		$age = $annee - $age[2] - 1;
		}
2e forme :
$date = date("d/m/Y",time());
// Détermination de l'âge
$age = $row[age];  // j'ai récupéré avant les infos MySQL ;)
$age = explode("/", $age);
$date = explode("/", $date);
if ($date[0] >= $age[0] and $date[1] = $age[1] or $date[1] > $age[1])
		{
		$age = $date[2] - $age[2];
		}
else	
		{
		$age = $date[2] - $age[2] - 1;
		}
Quelle forme préférez-vous ?
Voilà, je voulais savoir si vous aviez pas un truc plus simple ?
Ou même si quelqu'un a fait quelque chose du même genre.

Posté : 11 sept. 2005, 11:00
par Vaedan
Bonjour. Personnellement je préfère le 2ème script. Par contre quelquechose me chagrine. Je ne te dirais pas quoi pour te laisser trouver mais je te conseil de développer tes scripts avec TOUTES les erreurs de reportées !
Pour ce faire édite php.ini, cherche, trouve et remplace par :

Code : Tout sélectionner

error_reporting = E_ALL
Le problème te sautera directement aux yeux !
Tu peux aussi avoir recours à PHP :
error_reporting( E_ALL );

Posté : 11 sept. 2005, 11:10
par smarties
Sinon tu créés 2 horodateur :
$age_en_seconde=mktime(/*date du jour*/)-time();
$age = $age_en_seconde/(3600*24*7*52);

Posté : 11 sept. 2005, 16:56
par K20
Bonjour. Personnellement je préfère le 2ème script. Par contre quelquechose me chagrine. Je ne te dirais pas quoi pour te laisser trouver mais je te conseil de développer tes scripts avec TOUTES les erreurs de reportées !
Pour ce faire édite php.ini, cherche, trouve et remplace par :

Code : Tout sélectionner

error_reporting = E_ALL
Le problème te sautera directement aux yeux !
Tu peux aussi avoir recours à PHP :
error_reporting( E_ALL );
Heu, c'est quoi mon erreur ? :oops:

@ smarties : oui ça peut être intéressant !

Posté : 11 sept. 2005, 17:01
par Vaedan
$row[age]
génère une notice. en effet, 'age' est interprété comme une constante. :arrow:
$row[ 'age' ]

Re: Afficher l'âge d'une personne

Posté : 11 sept. 2005, 17:41
par pjl
Je stocke la date de naissance de la personne sous la forme 01/01/1987 (exemple) dans une base de donnée MySQL.
Le format de stockage de date est yyyy-mm-dd.