Besoin d'aide PHP calculer un age

Besoin d'aide PHP calculer un age - Programmation

Marsh Posté le 25-02-2002 à 16:17:12    

Salut je voudrais trouver l'age de kelk1 a partir de sa date de naissance ; en PHP
 
exp :  
<?
 
 $date = ("13/04/1979" );
 
 $age = fontion_trouve_age($date);
 
 echo = ("$age" );
 
?>
 
merci

 

[jfdsdjhfuetppo]--Message édité par benwar--[/jfdsdjhfuetppo]

Reply

Marsh Posté le 25-02-2002 à 16:17:12   

Reply

Marsh Posté le 25-02-2002 à 16:30:31    

il te faut extraire l'année de la date et le comparer à l'année courante

Reply

Marsh Posté le 25-02-2002 à 16:37:53    

Me![Nombre_Jours].Value = DateDiff("d", Me![Date_deb], Me![Date_Fin])
 
DSL JE SAIS QUE LE FAIRE EN VB

Reply

Marsh Posté le 25-02-2002 à 16:47:58    

lord ii a écrit a écrit :

il te faut extraire l'année de la date et le comparer à l'année courante  




 
oui mais c pas vraiment juste comme resultat tu veut dire :  
 
2002-1979=23
 
23 ans mais j'aurrais 23ans le 13/04/2002 moi alors c po bon.

Reply

Marsh Posté le 25-02-2002 à 16:57:13    

Pour avoir le jour exact, il te faut passer par un timestamp mais ca ne marche pas pour une date avant 1970


---------------
La bave du crapaud n'empèche pas la caravane de passer .
Reply

Marsh Posté le 25-02-2002 à 17:00:14    

lord ii a écrit a écrit :

il te faut extraire l'année de la date et le comparer à l'année courante  




 
Le problème est qu'il faut aussi comparé le mois, et le jour.
 
Bon tu peux extraire le jour/mois/annee ainsi :
 
list ($jour, $mois, $annee) = split ("#/#", $date);
 
sachant que $date contient la date au format jj/mm/aaaa.
 
Tu fais la même opération sur la date actuelle (que tu obtiens avec :
date ("d/n/Y" )
) et ensuite tu te débrouilles pour comparer les jours/mois/années.

Reply

Marsh Posté le 25-02-2002 à 17:14:57    

c justement la comparaicson qui me pose un probleme !
 
<?
 
 $date1 = ("13/04/1979" );
 $today = date ("d/n/Y" );  
 
list ($jour, $mois, $annee) = split ("#/#", $date1);
list ($jour2, $mois2, $annee2) = split ("#/#", $today);  
 
//et la c la merde je c plus quoi faire
 
 
//$age = TO_DAYS(NOW())-TO_DAYS($date))/365;
 
 echo = ("$age" );
 
 
?>

Reply

Marsh Posté le 25-02-2002 à 17:20:42    

// Calcul de la date à partir de laquelle on supprime les fichiers
 
$toto = mktime(0,0,0,date("m" ),date("d" ) - $nb_jours,date("y" ));
 
$datesuppr = strftime("%y%m%d",$toto);
 
 
 :hello:  
moi j'ai utilisé le code ci-dessus pour enlever un certain nombre de jour à la date actuelle
ca peut peut-être t'aider...
je l'ai trouvé sur www.php.net (ou via une recherche google :??:  je me rappelle plus).

Reply

Marsh Posté le 25-02-2002 à 17:26:54    

benwar a écrit a écrit :

c justement la comparaicson qui me pose un probleme !
 
<?
 
 $date1 = ("13/04/1979" );
 $today = date ("d/n/Y" );  
 
list ($jour, $mois, $annee) = split ("#/#", $date1);
list ($jour2, $mois2, $annee2) = split ("#/#", $today);  
 
//et la c la merde je c plus quoi faire
 
 
//$age = TO_DAYS(NOW())-TO_DAYS($date))/365;
 
 echo = ("$age" );
 
 
?>  




 
Bah tu fais ceci :
 
$age = $annee2 - $annee;
if ($mois2 < $mois) {$age--;};
if ($mois2 == $mois AND $jour2 < $jour) {$age--;};
 
et voila :D

Reply

Marsh Posté le 25-02-2002 à 17:50:57    

<?
 
$date1 = ("13/4/1979" );
$today = date ("d/n/Y" );  
 
//je croi que la fonction liste ne fonctionne po  
//car si je fait un echo de $jour y a rien
 
list ($jour, $mois, $annee) = split ("#/#", $date1);
list ($jour2, $mois2, $annee2) = split ("#/#", $today);  
 
$age = $annee2 - $annee;
 
if ($mois2 < $mois) {$age--;};
if ($mois2 == $mois AND $jour2 < $jour) {$age--;};
 
echo ("$age" );
// $age donne 0 comme resultat bizard non ?
 
?>

Reply

Marsh Posté le 25-02-2002 à 17:50:57   

Reply

Marsh Posté le 25-02-2002 à 17:56:01    

[citation// $age donne 0 comme resultat bizard non ?
 
?>  
[/citation]
 
Non c'est pas bizarre, tu as mis :
$date1 = ("13/04/1979" );  
 
C'est ça qu'il faut mettre :
$date1 = "13/04/1979";  
 
C'est une string, pas un tableau :)

Reply

Marsh Posté le 26-02-2002 à 14:55:41    

<?
 
$date1 = "13/04/1979";
$today = date ("d/m/Y" );
 
//si je mets les valeurs si-dessou ca marche ;
//sinon y a toujours 0 en resultat je pense que c la fontion list qui ne marche po
// quand je fait un echo ("$annee" ); ou ("$annee2" ); rien meme po 0
//j'ai cherché de la doc sur elle et je ne pas trouvé d'explication.
 
//$jour = "13";
//$mois = "4";
//$annee = "1947";
 
//$jour2 = "26";
//$mois2 = "2";
//$annee2 = "2002";
 
 
list ($jour, $mois, $annee) = split ("#/#", $date1);
list ($jour2, $mois2, $annee2) = split ("#/#", $today);  
 
$age = $annee2 - $annee;
 
if ($mois2 < $mois) {$age--;};
if ($mois2 == $mois AND $jour2 < $jour) {$age--;};
 
echo ("$age" );
 
?>

Reply

Marsh Posté le 26-02-2002 à 15:00:47    

Essaye les split comme ca
 
list( $jour, $mois, $annee ) = split( '[/.−]', $date1 );
 
Vu dans la doc sur la fonction split


---------------
La bave du crapaud n'empèche pas la caravane de passer .
Reply

Marsh Posté le 26-02-2002 à 15:29:02    

Merci c bon  :crazy:  
 
Pour les prochains qui voudrons faire la meme chose :  
 
<?
 
$date1 = "13/04/1979";  
$today = date ("d/m/Y" );
 
list( $jour_today, $mois_today, $annee_today ) = split( '[/.-]', $today );
 
list( $jour, $mois, $annee ) = split( '[/.-]', $date1 );
 
$age = $annee_today - $annee;
if ($mois_today < $mois) {$age--;};
if ($mois_today == $mois AND $jour_today < $jour) {$age--;};
 
echo ("$age ans" );
 
?>
 
 
PS : j'ai testé avec une date anteriere à 1970 et c bon mais je ne l'ai pas encord testé sous linux...
 
En tout cas merci :D

 

[jfdsdjhfuetppo]--Message édité par benwar--[/jfdsdjhfuetppo]


---------------
J'avait dit à gauche... François  
Reply

Marsh Posté le 26-02-2002 à 15:44:20    

benwar a écrit a écrit :

Merci c bon  :crazy:  
 
Pour les prochains qui voudrons faire la meme chose :  
 




 
Oups oui en fait j'avais pensé qu'il fallait mettre des délimiteurs d'expression régulière avec split... mais pas besoin en fait. Ce que je voulais faire c'était  
split ("/", $date)
ce qui marche mais ca ne prendra en compte que le '/' en tant que séparateur.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed