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

Contributions JavaScript / AJAX Discussion :

Les formulaires (partie 2) : Comment vérifier la syntaxe d'une date ? [Fait] [FAQ]


Sujet :

Contributions JavaScript / AJAX

  1. #1
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 648
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 648
    Points : 11 137
    Points
    11 137
    Par défaut Les formulaires (partie 2) : Comment vérifier la syntaxe d'une date ?
    Comment vérifier la syntaxe d'une date ?
    http://javascript.developpez.com/faq...Objs#VerifDate

    • Simplification du code en utilisant l'objet Date()


    Comment vérifier la syntaxe d'une date ?

    La fonction prend en paramètre une chaîne de caractères de la forme jj/mm/aaaa. A partir de là nous créons un objet Date(). Nous comparons ensuite le résultat retourné par l'objet Date() avec celui passé en paramètre de la fonction.

    Code javascript : 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
    37
    38
    39
    40
    41
    42
    43
    44
    // Cette fonction vérifie le format JJ/MM/AAAA saisi et la validité de la date.
    function checkDate(d) 
    {
     	var strDate;
    	var annee, mois, jour;
    	var date;
     
    	strDate = d.split("/");		//division de la chaine selon le séparateur "/"
     
    	// si le tableau strDate ne contient pas 3 éléments alors la date est mal formatée
    	if (strDate.length != 3) 	
    	{
    		alert("La date n'est pas au format JJ/MM/AAAA.");
    		return false;
    	}
     
    	jour = parseInt(strDate[0],10);
    	mois = parseInt(strDate[1],10)-1;	// /!\ en javascript les mois vont de 0 (janvier) à 11 (décembre)
    	annee = parseInt(strDate[2],10);
     
    	date = new Date(annee, mois, jour);		// création de l'objet date
     
    	// vérification du jour, mois et année
    	if (date.getDate() != jour) 
    	{
    		alert("Le jour n'est pas correct.");
    		return false;
    	}	
     
    	if (date.getMonth() != mois) 
    	{
    		alert("Le mois n'est pas correct.");
    		return false;
    	}		
     
    	if (date.getFullYear() != annee) 
    	{
    		alert("L'année n'est pas correcte.");
    		return false;
    	}
     
    	return true;	// pas d'erreur
     
    }

    Voir aussi : Comment vérifier si un champ qui contient la date et l'heure au format(aaaa-mm-jj hh:mm:ss) est bien rempli ?

  2. #2
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    16 959
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 959
    Points : 44 122
    Points
    44 122
    Par défaut Relecture
    Je ne sais trop quoi penser, la fonction prenant mal en compte si il manque un élément.
    Si il manque un élément de la date => seul le jour est déclaré non valide?.

    Il doit également y avoir moyen de faire cela avec une regExp, il me semble l'avoir vu il y à peu sur le forum.

    Je déplacerais éventuellement cette question dans le paragraphe La gestion des dates (l'objet Date).

  3. #3
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 648
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 648
    Points : 11 137
    Points
    11 137
    Par défaut
    Effectivement, cette Q/R existe ailleurs dans la FAQ :
    http://javascript.developpez.com/faq...erifFormatDate
    donc peut-être que l'on peut faire un lien direct vers cette Q/R ?


    cela évitera le doublon

  4. #4
    Expert éminent sénior

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Points : 79 912
    Points
    79 912
    Par défaut
    Vous voudriez supprimer la Q/R en fait ?

  5. #5
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 648
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 648
    Points : 11 137
    Points
    11 137
    Par défaut
    Non, plutôt la garder mais plutôt que réécrire le même code autant faire un lien direct vers la section date.

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

Discussions similaires

  1. Réponses: 11
    Dernier message: 19/11/2013, 21h36
  2. [FAQ] Les formulaires (partie 2) : Comment soumettre un formulaire automatiquement ?
    Par Auteur dans le forum Contributions JavaScript / AJAX
    Réponses: 4
    Dernier message: 18/11/2013, 21h33
  3. Réponses: 2
    Dernier message: 16/11/2013, 19h36
  4. [FAQ] Les formulaires (partie 2) : Comment soumettre un formulaire en utilisant un lien ?
    Par Auteur dans le forum Contributions JavaScript / AJAX
    Réponses: 5
    Dernier message: 16/11/2013, 17h55
  5. [JavaScript] [FAQ][Correction / MAJ] Comment vérifier la syntaxe d'une date ?
    Par Auteur dans le forum Contribuez
    Réponses: 0
    Dernier message: 09/12/2008, 23h52

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