Probleme pour afficher un age (date de naissance)

Résolu/Fermé
powerguitou Messages postés 472 Date d'inscription vendredi 24 juillet 2009 Statut Membre Dernière intervention 29 janvier 2021 - 27 mai 2013 à 01:09
powerguitou Messages postés 472 Date d'inscription vendredi 24 juillet 2009 Statut Membre Dernière intervention 29 janvier 2021 - 5 juin 2013 à 10:44
Bonjour,

J'enregistre dans ma base de donnée les date de naissance sous la forme 0000-00-00 donc Y-d-m , je voudrais lorsque je récupère cette valeur la transformé en age.

Actuellement j'affiche la date de cette manière,

echo $data1['Age']."<br>";

Mais j'aimerais affiché l'age ça présente quand même un peu mieux faut dire :-)

Voila si quelqu'un à une idée, merci beaucoup

3 réponses

loupix57 Messages postés 316 Date d'inscription mercredi 20 mars 2013 Statut Membre Dernière intervention 1 juin 2015 14
2 juin 2013 à 18:05
Bonjour guitou

Tu peut utiliser PHP pour faire ça :

list($annee, $jour, $mois) = explode("-",$data['Age']);
$diff_annee  =date("Y") - $annee;
$diff_mois  =date("m") - $mois;
$diff_jour  =date("d") - $jour;
if($diff_jour <0 || $diff_mois<0){
$diff_annee--;}

echo $diff_annee; // l'age


0
powerguitou Messages postés 472 Date d'inscription vendredi 24 juillet 2009 Statut Membre Dernière intervention 29 janvier 2021 29
3 juin 2013 à 12:09
hello merci de ta réponse, effectivement ça fonctionne.....presque.
En fait selon la date il affiche pas le bon age à 1 an prêt.
tu pourrais m'expliquer ce que tu as fait pour que j essaie de résoudre le truc?
merci à toi
0
loupix57 Messages postés 316 Date d'inscription mercredi 20 mars 2013 Statut Membre Dernière intervention 1 juin 2015 14
Modifié par loupix57 le 4/06/2013 à 20:11
lol, j'ai trouver ça après 30 sec de recherche sur yahoo !

Donc, ici, l'idée et de tout d'abord mesurer les différence année, moi, jours avec la date de naissance et aujourd'hui.

$diff_annee donne l'age relatif à l'année en cours ;
Mais si le mois est supérieur .. bah ça donne un entier relatif (-3 par exemple) ; donc on vas lui enlever un ans !

Oui ! le souci se situe sur $diff_jour qui vas enlever un an a chaque fois qu'on vas dépasser le jour .. pour chaque mois :-(

à la limite, essaye de mettre plutot
if($diff_jour<0 && $diff_mois<0){
$diff_annee--;}


de cette manière, une fois le jour et le mois dépasser, on lui met son bon age.

en espérant avoir répondus à ta question.

Même les maths ça n'a rien de compliquer.
0
powerguitou Messages postés 472 Date d'inscription vendredi 24 juillet 2009 Statut Membre Dernière intervention 29 janvier 2021 29
5 juin 2013 à 10:26
cela ne fonctionne toujours pas sur certaine année, des que j'aurais la solution je la posterais ici cela en aidera surement d'autre.
Merci de ta solution
J'ai déjà essayer pas mal de manière de faire "google est aussi mon ami", si j'ai poster ici c'est parce que rien n'a encore fonctionner correctement.

bye bye
0
powerguitou Messages postés 472 Date d'inscription vendredi 24 juillet 2009 Statut Membre Dernière intervention 29 janvier 2021 29
5 juin 2013 à 10:44
Bon j'ai finalement trouver un moyen qui semble fonctionner parfaitement,si quelqu'un y vois des erreurs n'hésiter pas, je débute dans tout ça alors c'est pas évident.

list($annee, $jour, $mois) = explode("-",$data1['Age']);
		{
		$date = explode('/',date('d/m/Y'));
		if(($mois < $date[1]) || (($mois == $date[1] && $jour <= $date[0])))
		{
			$age = $date[2]-$annee;
			
		}else{
		
			$age = $date[2]-$annee-1;
			
		}
		
		}
0