Demande d'explication de code

Bonjour,

j'ai un formulaire de contact ou l'on doit rentrer la date de naissance pour un enfant ayant entre 2 et 7 ans.

Voici le test effectué lors de la validation :

if (document.form.date_naissance_enfants2<?php echo $i ?>.value!="")
{
if (datediff(document.form.date_naissance_enfants2<?php echo $i ?>.value,document.form.CHOIX_SEMAINE.value)>2557 || datediff(document.form.date_naissance_enfants2<?php echo $i ?>.value,document.form.CHOIX_SEMAINE.value)<731)
{
if (te=="")
{
te="L'enfant a moins de 2 ans ou plus de 7 ans et ne peut pas apparaître dans cette rubrique."
}
else
{
te=te+"\nL'enfant a moins de 2 ans ou plus de 7 ans et ne peut pas apparaître dans cette rubrique."
}
}

}

Et la fonction datediff :
function datediff(date_deb,date_fin) {
var aDate_deb,aDate_fin,nJ,nJ2,nM,nM2,nA,nA2;
aDate_deb = date_deb.split("/");
nJ = aDate_deb[0];
nM = aDate_deb[1];
nA = aDate_deb[2];
aDate_fin = date_fin.split("-");
nA2 = aDate_fin[0];
nM2 = aDate_fin[1];
nJ2 = aDate_fin[2];
var debut=Math.round(new Date(nA,nM-1,nJ)/86400000);
var fin=Math.round(new Date(nA2,nM2-1,nJ2)/86400000);
return Math.round(fin-debut);
}

Ce code fonctionne correctement. Mais maintenant, il faudrait pareil pour de 2 à 10 ans (au lieu de 7ans). Quelle valeur dois-je mettre ?

Merci

10 réponses

  • Votes
  • Date
  • Date décroissante
  1. Salut tes chiffres 2557 et 731 correspondent aux nombres de jour ?
    1. Donc 10 ans =365 jours par an * 10 = 3650

      Essaye et dis nous quoi

      mais bon, il y'a d'autres solutions pour connaitre si la personne est entre 2 ans et 7 ans
      1. Ok je vais essayer. Je suis preneur si tu as une meilleur solution
    2. J'ai testé avec :
      if (datediff(document.form.date_naissance_enfants2<?php echo $i ?>.value,document.form.CHOIX_SEMAINE.value)>3653 || datediff(document.form.date_naissance_enfants2<?php echo $i ?>.value,document.form.CHOIX_SEMAINE.value)<731)
      
      


      Si je teste avec 01/03/2000, alors cela pose problème.
      1. Cela me dit : L'enfant a moins de 2 ans ou plus de 7 ans et ne peut pas apparaître dans cette rubrique.

        Mais normalement, si l'enfant est né le 01/03/2000, alors l'enfant n'a pas encore 10 ans....

        Pour 31/05/2000, sa fonctionne par contre
        1. ça pose problème ? ça ne passe pas ? ou ça plante ?

          Pour une meilleur solution, il faut m'indiquer de quel façon tu entres la date de naissance ?
          1. Je le rentre dans cet ordre : 31/05/2000
        2. et si tu fais 25/05/2000 ? regarde a partir de quand ça fonctionne et ajoute la différence avec 3653