IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

[Javascript] Vérification d'une date


Sujet :

JavaScript

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 41
    Par défaut [Javascript] Vérification d'une date
    Bonjour à tous

    je rencontre un problème dans la vérification d'un champ date au sein de mon formulaire. Le format que j'utilise est le traditionnel DD/MM/AAAA.

    Voici le code. En fait, cette fonction marche pour tous les mois sauf le mois de décembre. A savoir que si je rentre 12/12/2005, la fonction ressortira avec la valeur 0. Je pense que j'ai fait un mauvais truc au niveau des indices au niveau des mois mais je ne vois pas comment solver le problème

    Merci par avance à tout ceux qui pourront m'aider !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    35
    36
     
    function date(champ)
    {
    	if(!champ=="")
    	{
    		var annee;
    		var resultat;
    		re = /^(\d?\d?)(\/)(\d?\d?)(\/)(\d\d\d\d)?$/;
    		var tab=champ.match(re);
     
    		if(!tab) 
    		{
    			return 0;
    		}	
    		var CoherenceDate=new Date(tab[5], tab[3]-1,tab[1]);
    		resultat=((CoherenceDate.getFullYear()==tab[5])&&(CoherenceDate.getMonth()==tab[3]-1)&&(CoherenceDate.getDate()==tab[1]));
    		if(!resultat)
    		{
    			return 0;
    		}	
    		AnneeSaisie=CoherenceDate.getFullYear();
    		MoisSaisie=CoherenceDate.getMonth();
    		JourSaisie=CoherenceDate.getDate();
    		var DateCourante=new Date();
    		var AnneeCourante=DateCourante.getFullYear();
    		var MoisCourant=DateCourante.getMonth()+1;
    		var JourCourant=DateCourante.getDate();
     
    		if((AnneeSaisie<1900 || AnneeSaisie>AnneeCourante)||((AnneeSaisie==AnneeCourante)&&(MoisSaisie>=MoisCourant)&&(JourSaisie>JourCourant)))
    		{
    			return 0;
    		}
    		return 1;
    	}
    	return 2;
    }
    Slyv

  2. #2
    Membre émérite
    Avatar de efficks
    Inscrit en
    Septembre 2005
    Messages
    712
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 712
    Par défaut
    Il y a déjà eu un post avec une fonction qui fonctionne à 100% sur ce forum. Je n'ai malheureusement plus son numéro. Une petite recherche s'impose.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 41
    Par défaut
    Bonjour,

    désolé j'ai fait mon boulet parce que quand je disais que mon 12/12/2005 me renvoyait date invalide c tout simplement parce que la date n'est pas passée !!!! d'où le message

    par contre, j'ai supprimé le +1 dans la ligne suivante vu que ça ne change rien à première vue :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    var MoisCourant=DateCourante.getMonth()+1;
    Slyv

  4. #4
    Expert confirmé

    Avatar de denisC
    Profil pro
    Développeur Java
    Inscrit en
    Février 2005
    Messages
    4 050
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 4 050
    Par défaut
    Citation Envoyé par slyv
    par contre, j'ai supprimé le +1 dans la ligne suivante vu que ça ne change rien à première vue :
    Il vaut mieux le laisser. Il est là parceque JavaScript compte les mois de 0 à 11 alors qu'un utilisateur humain à tendance à compter de 1 à 12. D'ou le +1 pour l'ajustement.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [RegEx] fonction de vérification d'une date
    Par yosraisi dans le forum Langage
    Réponses: 5
    Dernier message: 22/05/2008, 09h59
  2. Vérification d'une date
    Par pinacola dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 26/02/2007, 19h52
  3. [Lazarus] Vérification d'une date
    Par Ministar dans le forum Lazarus
    Réponses: 2
    Dernier message: 22/01/2007, 13h44
  4. Vérification d'une date
    Par MonsieurPaul dans le forum VB 6 et antérieur
    Réponses: 14
    Dernier message: 12/08/2005, 16h39
  5. fonction javascript qui rassemble une date
    Par Dizystorm dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 16/12/2004, 10h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo