Souci pour une date de naissance

Bonjour,

j'entrain faire une fonction pour une date a partire d'une date d'anniversaire car mon frére il y as un enfant donc je voudrai lui mettre un code pour savoir l'age et le mois qu'il as dépuis sa date d'anniversaire

donc voilà que j'aimerais faire

si on prend un exemple

il est née le 1 janvier 2008

on est le 6 septembre 2008

donc l'enfant il y as 9 mois et 6 jours

mais dans mon code il met 8 mois

car il faut un code pour qu'il sache que des mois se termine 30 jour où 31 jours et pour le mois de février il faut lui dire 28 jour où 29 jour

es ce quelqu'un pourrais m'aidé à faire cette fonction des jours

donc voilà le code que j'ai fais

<?php
$vieux_timestamp = mktime(0, 0, 0, 1, 1, 2008);
 //Heure : minutes : seconde : mois : jour : année
$timestamp_now = time();
$diff_timestamp = $timestamp_now - $vieux_timestamp;
?>
<p>
il est né le 
 <?php echo date('d/m/Y', $vieux_timestamp); ?>
<br />
il y as  
<?php
 
$nbrSecondes = $diff_timestamp;
 
$nbrSecParJour = 3600*24;
$nbrSecParAn = $nbrSecParJour*366.25;
$nbrSecParMois = $nbrSecParJour*31;
 
$nbrAnnees = floor($nbrSecondes / $nbrSecParAn);
$reste = $nbrSecondes % $nbrSecParAn;
 
$nbrMois = floor($reste / $nbrSecParMois);
$reste = $reste % $nbrSecParMois;
 
$nbrSemaines = floor($reste / ($nbrSecParJour*7));
$reste = $reste % ($nbrSecParJour*7);
 
$nbrJours = floor($reste / $nbrSecParJour);
$reste = $reste % $nbrSecParJour;
 
$nbrHeures = floor($reste / 3600);
$reste = $reste % 3600;
 
$nbrMinutes = floor($reste / 60);
$reste = $reste % 60;
 
echo $nbrAnnees . ' année(s), '
. $nbrMois . ' mois, '
. $nbrSemaines . ' semaine(s), '
. $nbrJours . ' jour(s), '
. $nbrHeures . ' heure(s), '
. $nbrMinutes . ' minute(s) et '
. $reste . ' seconde(s).';
?></p>


merci de m'aidé à trouvé le code qui puisse comprendre les nombres jours exactes dépuis une date de naissance

merci de votre aide
Configuration: Windows XP
Internet Explorer 7.0

5 réponses

  1. http://www.oubah.com/scripts/telecharger_ultimate_age_calculator,5950.html--
     ELFILOU
     Si un humain a une grande idée de lui-même, on peut être sûr que c'est la seule grande idée qu'il ait jamais eue dans sa vie. 

                                
                            
    1
    1. merci j'ai voulu le téléchargé

      mais il ne veut pas le téléchargé où il est trés long

      merci
      1
      1. re

        j'ai réaissayé de le rtélechargé le script

        mais impossible de le téléchargé

        merci de ton aide
        1
        1. re juste pour dire j'ai trouvé un code qui marche trés bien mais je t'en remercie
          1
          1. ok le principal c'est que ton projet aboutisse !!
            ciao
            0
        2. mercio pour ta réponse

          voilà ceux que ça donne

          http://forum.exemple.free.fr/date.php

          et je voudrais savoir si je te donne le code es ce que tu pourrais me faire inversé les jours

          je m'explique

          je veux mettre les mois et le jours qu'il reste avant sa date d'anniverssaire

          je sais que c'est possible mais il faut connaitre bien le javasscript pour inversé le code pour dire

          par exemple : il reste 10 mois et 20 jours avant son anniverssaire

          si tu peux voilà le code

          <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
          <html xmlns="http://www.w3.org/1999/xhtml">
          <head>
          <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
          <title>Document sans titre</title>
          <SCRIPT LANGUAGE="JavaScript">
          
          //valeurs de départ (à modifier)
          var cible= new Date("august 04, 2008 00:01:00");
          
          //la date d'aujourd'hui
          var date_day = new Date();
          
          //calcul des différences
          var annee_diff = date_day.getFullYear() - cible.getFullYear();
          var mois_diff = (date_day.getMonth()+1) - (cible.getMonth()+1);
          var jour_diff = date_day.getDate() - cible.getDate();
          var heure_diff = date_day.getHours() - cible.getHours();
          var minute_diff = date_day.getMinutes() - cible.getMinutes();
          var seconde_diff = date_day.getSeconds() - cible.getSeconds();
          
          //gestion des valeurs négatives
          if (heure_diff < 0)
          { 
            heure_diff +=24;
            jour_diff--;
          }
          if (jour_diff < 0)
          {
            switch(cible.getMonth()+1)
            {
              case 1:
          	case 3:
          	case 5:
          	case 7:
          	case 8:
          	case 10:
          	case 12:
                jour_diff+=31;
          	  break;
          	case 2:
          	  if (cible.getFullYear()%4)
          	  {
          	    jour_diff+=29;
          	  }
          	  else
          	  {
          	    jour_diff+=28;
          	  }
          	  break;
          	case 4:
          	case 6:
          	case 9:
          	case 11:
          	  jour_diff+=30;
          	  break
            }
            mois_diff--;
          }
          if (mois_diff < 0)
          {
            mois_diff+=12;
            annee_diff--;
          }
          
          
          function decompte() {
          
          seconde_diff +=1;
          if (seconde_diff==60)
          { 
            seconde_diff=0;
            minute_diff +=1;
            if (minute_diff==60)
            {
              heure_diff +=1;
          	if (heure_diff==24)
          	{
          	  jour_diff +=1;
          	  if (((jour_diff==28)&&(date_day.getMonth()==2)&&(!date_day.getFullYear()%4))||((jour_diff==29)&&(date_day.getMonth()==2)&&(date_day.getFullYear()%4))||((jour_diff==30)&&((date_day.getMonth()==4)||(date_day.getMonth()==6)||(date_day.getMonth()==9)||(date_day.getMonth()==11)))||((jour_diff==31)&&((date_day.getMonth()==0)||(date_day.getMonth()==1)||(date_day.getMonth()==3)||(date_day.getMonth()==5)||(date_day.getMonth()==7)||(date_day.getMonth()==8)||(date_day.getMonth()==10))))
          	  {
          	    mois_diff+=1;
          	  }
          	  if (mois_diff==12)
          	  {
          	    annee_diff+=1;
          	  }
          	}
            }
          }
          // on affecte nos résultats aux champs du formulaire
          document.getElementById("annees").innerHTML = annee_diff;
          document.getElementById("mois").innerHTML = mois_diff;
          document.getElementById("jours").innerHTML = jour_diff;
          document.getElementById("heures").innerHTML  = heure_diff;
          document.getElementById("minutes").innerHTML  = minute_diff;
          document.getElementById("secondes").innerHTML = seconde_diff;
          
          // on relance la fonction pour actualiser à la seconde
          setTimeout("decompte()",1000);
          }
          
          </SCRIPT></head>
          
          <body>
          <body onLoad="decompte()">
          Evènement depuis <span id="annees">0</span> 
                  ans <span id="mois">0</span> mois <span id="jours">0</span> jours <span id="heures">0</span> 
                  heures <span id="minutes">0</span> minutes <span id="secondes">0</span> 
                  secondes</body>
          </html>
          


          et si tu peux ça seras sympa et aussi comme ça quand il vas arrivé a ses 1 ans on mettras un echo pour dire bonne anniverssaire mais juste pour 24 h aprés la phrase qui est dans l'echo il disparaitra jusqu'a l'année suivante

          merci pour ton aide si tu ne sais pas trop le javascript ce n'est pas grave
          1