bonjour,
je souhaite mettre en place une fonction qui me permettra de vérifier si la date entrer est compris entre 20 et 80 ans,
c'est a dire date System - date_saisie=(entre 20 et 80 )
merci
Version imprimable
bonjour,
je souhaite mettre en place une fonction qui me permettra de vérifier si la date entrer est compris entre 20 et 80 ans,
c'est a dire date System - date_saisie=(entre 20 et 80 )
merci
Salut,
quand tu tentes de soustraire deux objets Date, tu obtiens le nombre de millisecondes qui sépare ces deux dates. De là, tu peux obtenir le nombre d'années, mais ce n'est pas forcément la méthode la plus précise.
Je m'explique, d'après Google, il y a en moyenne 365.242199 jours dans une année. En partant d'une quantité de millisecondes, il faut donc diviser par 1000 * 60 *60 *24 *365.242199 pour avoir le nombre d'années. Sachant que toutes ces opérations sont réalisées en virgule flottante, il peut donc y avoir une perte de précision à chaque étape.
Sinon il y a une solution beaucoup plus simple :mouarf: :Reste plus qu'à faire la comparaison :Code:var diff = new Date().getFullYear() - date_saisie.getFullYear();
;)Code:return diff >= 20 && diff <= 80;
voici la fonction :
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 function date(date_saisie) { var diff = new Date().getFullYear() - date_saisie.getFullYear(); if( diff >= 20 && diff <= 80){ alert('date ok') ; } else { alert('date no ok') ; } }
et la mon inpute :
mais le onblur ne se déclenche pas et rien ne s'affiche .Code:
1
2
3 <input type="text" id="Text3" onblur="date(document.getElementById('Text3').value);"/>
merci pour votre aide
:nono:Code:var diff = new Date().getFullYear() - date_saisie.getFullYear();
date_saisie est de type chaine, donc ne possède pas de méthode getFullYear()...
D'autre part
serait aussi efficace avecCode:<input type="text" id="Text3" onblur="date(document.getElementById('Text3').value);"/>
Code:<input type="text" id="Text3" onblur="date(this.value);" />
comment puis-je faire alors , pour convertir la chaîne en date dans cette fonction !!!
merci
j'essaye avec ça mais ca donne rien :
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 function date(date_saisie) { var dt = new Date(); dt = date_saisie; var diff = new Date().getFullYear() - dt.getFullYear(); alert ('kkkk'); if( diff >= 20 && diff <= 80){ alert('date ok') ; } else { alert('date no ok') ; } }
Code:var dt = new Date(date_saisie);
c'est bon j'ai trouvé la reponse :) :
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 function date(date_saisie) { var machaine = date_saisie; var maDate = new Date() var TabChaine = machaine.split('\/') maDate.setDate(TabChaine[0]); maDate.setMonth(TabChaine[1]); maDate.setYear(TabChaine[2]); alert(maDate); var diff = new Date().getFullYear() - maDate.getFullYear(); alert ('kkkk'); if( diff >= 20 && diff <= 80){ alert('date ok') ; } else { alert('date no ok') ; } }
merciiiii
Tout dépend du format d'entrée de ta date :
16/12/2011
16/12/11
16 décembre 2011
2011
etc.
Ah moins qu'il est une sorte de parser générique un peu comme strtotime() de PHP ?
Edit: grilled :aie:
Pour quoi faire ? La retransformer en nombre pour la soustraction ? :koi:Citation:
Envoyé par mvc_dev
Code:
1
2 var annee = date_saisiesplit('\/'); var diff = new Date().getFullYear() - annee[2];