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 :

Controle d'une date


Sujet :

JavaScript

  1. #1
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut Controle d'une date
    Bonjour,

    J'utilise cette fonction pour vérifier la validité d'une date, mais quand je saisi 28/02/2015, la fonction renvoie false.

    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
     
    function DateValide(LaDate){
        var date_pas_sure = LaDate;
        var format = /^(\d{1,2}\/){2}\d{4}$/;
        if(!format.test(date_pas_sure)){}
        else{
            var date_temp = date_pas_sure.split('/');
            date_temp[1] -=1;        // On rectifie le mois !!!
            var ma_date = new Date();
            ma_date.setFullYear(date_temp[2]);
            ma_date.setMonth(date_temp[1]);
            ma_date.setDate(date_temp[0]);
            if(ma_date.getFullYear()==date_temp[2] && ma_date.getMonth()==date_temp[1] && ma_date.getDate()==date_temp[0]){
     
    			return true;
            }
            else{
     
    			return false;
            }
        }
    }
    Je ne vois pas où est l'erreur.

    Merci.

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    C'est normal, tu t'y prends mal en affectant l'année, le mois et le jour séparément.
    Aujourd'hui, on est le 29 janvier.
    Donc quand tu initialises ta date (new Date()), elle prendra la valeur du 29 janvier 2015.
    Tu affectes l'année, OK, pas de changement.
    Tu affectes le mois. On tombe donc sur le 29 février. Pas cool, il n'y a pas de 29 février cette année. Pas grave, JavaScript sait gérer ça et transforme ta date en 1er mars.
    Tu affectes le jour. Tu finis donc sur le 29 mars 2015, qui nest effectivement pas le 29 février.

    Il faut donc initialiser directement la date avec les valeurs récupérées :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var ma_date = new Date(date_temp[2],date_temp[1],date_temp[0]);
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, 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
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  3. #3
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Re,

    Merci beaucoup, ça fonctionne.

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

Discussions similaires

  1. Controle sur une date en Java
    Par CliffeCSTL dans le forum Général Java
    Réponses: 7
    Dernier message: 05/06/2015, 09h51
  2. Réponses: 2
    Dernier message: 05/05/2008, 12h32
  3. Controle d'une Date declaré par le type String.
    Par Mobistar dans le forum Langage
    Réponses: 4
    Dernier message: 21/01/2007, 15h46
  4. tester un controle HTML contenant une date
    Par ahlem_info dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 18/01/2007, 14h55

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