Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript
JavaScript Forum programmation JavaScript. Lire : Cours JavaScript, FAQ JavaScript, Toutes les FAQ JavaScript et Sources JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 15/12/2011, 17h42   #1
Membre régulier
 
Homme julien puteau
consultant java
Inscription : août 2010
Messages : 302
Détails du profil
Informations personnelles :
Nom : Homme julien puteau
Localisation : France

Informations professionnelles :
Activité : consultant java
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : août 2010
Messages : 302
Points : 71
Points : 71
Par défaut fonction qui vérifie la date entre 20 et 80

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
mvc_dev est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2011, 19h32   #2
Membre Expert
 
Avatar de Watilin
 
Homme Matilin Torre
Étudiant
Inscription : juin 2010
Messages : 679
Détails du profil
Informations personnelles :
Nom : Homme Matilin Torre
Âge : 23
Localisation : France, Ille et Vilaine (Bretagne)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2010
Messages : 679
Points : 1 202
Points : 1 202
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 :
Code :
var diff = new Date().getFullYear() - date_saisie.getFullYear();
Reste plus qu'à faire la comparaison :
Code :
return diff >= 20 && diff <= 80;
__________________
Disposition de clavier ergonomique française : Bépo
Watilin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2011, 16h52   #3
Membre régulier
 
Homme julien puteau
consultant java
Inscription : août 2010
Messages : 302
Détails du profil
Informations personnelles :
Nom : Homme julien puteau
Localisation : France

Informations professionnelles :
Activité : consultant java
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : août 2010
Messages : 302
Points : 71
Points : 71
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 :

Code :
1
2
3
 
 
        <input type="text" id="Text3"  onblur="date(document.getElementById('Text3').value);"/>
mais le onblur ne se déclenche pas et rien ne s'affiche .

merci pour votre aide
mvc_dev est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2011, 16h57   #4
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 808
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2008
Messages : 13 808
Points : 35 787
Points : 35 787
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
Code :
<input type="text" id="Text3"  onblur="date(document.getElementById('Text3').value);"/>
serait aussi efficace avec
Code :
<input type="text" id="Text3" onblur="date(this.value);" />
__________________
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi !
Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Bovino est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2011, 17h07   #5
Membre régulier
 
Homme julien puteau
consultant java
Inscription : août 2010
Messages : 302
Détails du profil
Informations personnelles :
Nom : Homme julien puteau
Localisation : France

Informations professionnelles :
Activité : consultant java
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : août 2010
Messages : 302
Points : 71
Points : 71
comment puis-je faire alors , pour convertir la chaîne en date dans cette fonction !!!




merci
mvc_dev est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2011, 17h09   #6
Membre régulier
 
Homme julien puteau
consultant java
Inscription : août 2010
Messages : 302
Détails du profil
Informations personnelles :
Nom : Homme julien puteau
Localisation : France

Informations professionnelles :
Activité : consultant java
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : août 2010
Messages : 302
Points : 71
Points : 71
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') ;
     }
 
    }
mvc_dev est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2011, 17h13   #7
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 071
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 071
Points : 45 201
Points : 45 201
Code :
var dt = new Date(date_saisie);
__________________
Ma page Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2011, 17h13   #8
Membre régulier
 
Homme julien puteau
consultant java
Inscription : août 2010
Messages : 302
Détails du profil
Informations personnelles :
Nom : Homme julien puteau
Localisation : France

Informations professionnelles :
Activité : consultant java
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : août 2010
Messages : 302
Points : 71
Points : 71
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
mvc_dev est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2011, 17h17   #9
Membre expérimenté
 
Avatar de Torgar
 
Homme Jérémy
Développeur Web
Inscription : août 2007
Messages : 326
Détails du profil
Informations personnelles :
Nom : Homme Jérémy
Âge : 26
Localisation : France, Gard (Languedoc Roussillon)

Informations professionnelles :
Activité : Développeur Web
Secteur : Industrie

Informations forums :
Inscription : août 2007
Messages : 326
Points : 535
Points : 535
Envoyer un message via MSN à Torgar Envoyer un message via Skype™ à Torgar
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
__________________
Vivez vos rêves !!!

Si vous voulez que l'on vous aide, postez votre code avec la balise [ CODE ] [ /CODE ] (bouton # de l'éditeur)
Torgar est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/12/2011, 13h38   #10
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 808
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2008
Messages : 13 808
Points : 35 787
Points : 35 787
Citation:
Envoyé par mvc_dev
comment puis-je faire alors , pour convertir la chaîne en date dans cette fonction !!!
Pour quoi faire ? La retransformer en nombre pour la soustraction ?

Code :
1
2
var annee = date_saisiesplit('\/');
var diff = new Date().getFullYear() - annee[2];
__________________
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi !
Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Bovino est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h19.


 
 
 
 
Partenaires

Hébergement Web