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 :

Contrôle saisie date(date supérieure à la date actuelle)


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de janyoura
    Femme Profil pro
    étudiante ingénierie informatique
    Inscrit en
    Mars 2012
    Messages
    365
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : étudiante ingénierie informatique

    Informations forums :
    Inscription : Mars 2012
    Messages : 365
    Par défaut Contrôle saisie date(date supérieure à la date actuelle)
    Salut
    J'ai besoin d'effectuer un contrôle sur la date saisie dans un formulaire. je ne suis pas arrivée à vérifier cette condition: la date saisie soit supérieure à la date actuelle. comment faire?
    merci pour votre aide

    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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
     
    function surligne(champ, erreur)
    {
       if(erreur)
          champ.style.backgroundColor = "#fba";
       else
          champ.style.backgroundColor = "";
    }
     
    function verifDate(champ){
     
    	var dateJour = new Date();
    	//var messretour = "La date saisie est incorrect\nLa date doit être saisie dans l'ordre suivant AMJ\nelle doit être ultèrieur à la date actuelle "
         //   + dateJour.getFullYear() + '-' + (dateJour.getMonth()+1) + '-' + dateJour.getDate();
     
    	champ.value = champ.value.replace("-","");
    	//vérifier taille date
    	if (champ.value.length != 8){
    		 surligne(champ, true);
    	      return false;
    	}
     
    	//controle caractère numérique
    	if (IsNumeric(champ.value) == false){
    		 surligne(champ, true);
    	      return false;
    	}
    	var aaaa = champ.value.substring(0,4);
    	var mm = champ.value.substring(4,2);
    	var jj = champ.value.substring(4,2);
    //	var datenew = aaaa+'-'+mm+'-'+jj;
     
    	d2 = new Date(0);
    	d2.setFullYear(aaaa, mm-1, jj);
     
    //	if (isDateValid(datenew) == false){
    	//	 surligne(champ, true);
    	  //    return false;
    	//}
     
    	var dates = new Date(aaaa,mm-1,jj);
    //	var datesaisie =dates.getTime();
    	// var dateMini = dateJour.getTime();
     
    	//Controle date supérieure à la date actuelle
    	if (d2 <= dateJour )
    		{
    		 surligne(champ, true);
    	      return false;
     
    		}
     
     
    	}
    function IsNumeric(x)
    {
    var checkOK = "0123456789-";
      var checkStr = x;
      var allValid = true;
     
      var i,j;
      var allNum = "";
      for (i=0;  i < checkStr.length;  i++)
      {
        ch = checkStr.charAt(i);
        for (j=0;  j < checkOK.length;  j++)
          if (ch == checkOK.charAt(j))
            break;
        if (j == checkOK.length)
        {
          allValid = false;
          break;
        }
        allNum += ch;
      }
      if (!allValid)
      {
      return (false);
      }
      return (true);
     
    }
    function isDateValid(chaineDate) {
     
    // CONTROLE LA VALIDITE D UN CHAMP DATE
    //alert(chaineDate);
       if (chaineDate == "") return false;
       var ladate = (chaineDate).split("-");
     
       if ((ladate.length != 3) || isNaN(parseInt(ladate[0])) || isNaN(parseInt(ladate[1])) || isNaN(parseInt(ladate[2]))) return false;
     
       var unedate = new Date(eval(ladate[0]),eval(ladate[1])-1,eval(ladate[2]));
     
       var annee = unedate.getYear();
       if ((Math.abs(annee)+"").length < 4) annee = annee + 1900;
       //return(true);
       return ((unedate.getDate() == eval(ladate[2])) && (unedate.getMonth() == eval(ladate[1])-1) && (annee == eval(ladate[0])));
    }

  2. #2
    Membre Expert

    Homme Profil pro
    Ingénieur Hospitalier
    Inscrit en
    Juillet 2004
    Messages
    993
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Hospitalier
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 993
    Billets dans le blog
    1
    Par défaut
    Question, pourquoi ne pas avoir choisit des "select avec options" pour les dates ainsi tu n'a pas a devoir setter en js ses valeurs?
    Tu devra de toute façon les setter côté serveur, l'un ne va pas s'en l'autre, mais comme l'utilisateur, n'a pas de donnée à saisir de lui même, tu n'aura pas a faire tout se boulot.

    Bref si c'est une contrainte demandé pour x raison, sinon dommage que tu n'exploite cette piste en html simple a mettre en oeuvre, et pour t'éviter les codes js qui sont nécéssaire pour ce type de scénario.

    De plus ne jamais avoir confiance au utilisateur, c'est vital .

    Bonne soirée.

  3. #3
    Membre éclairé Avatar de janyoura
    Femme Profil pro
    étudiante ingénierie informatique
    Inscrit en
    Mars 2012
    Messages
    365
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : étudiante ingénierie informatique

    Informations forums :
    Inscription : Mars 2012
    Messages : 365
    Par défaut
    C'est-à-dire donner un choix fixe de date ? Non, je veux donner un choix libre de date. Savez-vous comment complémenter ce code que j'ai fourni ?

    J'ai juste besoin d'un code qui vérifie que la date est ultérieure à la date actuelle.

    Merci, bonne soirée à vous aussi.

  4. #4
    Membre Expert

    Homme Profil pro
    Ingénieur Hospitalier
    Inscrit en
    Juillet 2004
    Messages
    993
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Hospitalier
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 993
    Billets dans le blog
    1
    Par défaut
    Pour du tout fait :
    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 compar(sdate1,sdate2)
    {
     
    var date1 = new Date();
    date1.setFullYear(sdate1.substr(6,4));
    date1.setMonth(sdate1.substr(3,2));
    date1.setDate(sdate1.substr(0,2));
    date1.setHours(0);
    date1.setMinutes(0);
    date1.setSeconds(0);
    date1.setMilliseconds(0);
    var d1=date1.getTime()
     
    var date2 = new Date();
    date2.setFullYear(sdate2.substr(6,4));
    date2.setMonth(sdate2.substr(3,2));
    date2.setDate(sdate2.substr(0,2));
    date2.setHours(0);
    date2.setMinutes(0);
    date2.setSeconds(0);
    date2.setMilliseconds(0);
    var d2=date2.getTime()
     
    //(date fin) sdate2 > sdate1 (date de début) afficher un message d'erreur
    if(d1>d2)
    {	
    	alert('Vous avez sélectionnez une date incorrect!!')
    }
    else
    {
    	alert('Correct')
    }
     
    }
    }

  5. #5
    Membre éclairé Avatar de SPACHFR
    Profil pro
    Paaaaaa
    Inscrit en
    Février 2004
    Messages
    557
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Paaaaaa

    Informations forums :
    Inscription : Février 2004
    Messages : 557
    Par défaut
    La fonction ci-dessous à améliorer, mais c'est un exemple...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    function CheckDate(){
     var a=new Date();			// date courante
     var b=new Date(2029,2,10); // date à tester
     var na=parseInt(a.valueOf(),10);
     var nb=parseInt(b.valueOf(),10);
     if(na > nb){ alert("false");}else{alert("true");}
    }

  6. #6
    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 : 55
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     var na=parseInt(a.valueOf(),10);
     var nb=parseInt(b.valueOf(),10);

    Ca sert à quoi ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    function CheckDate(){
     var a=new Date();			// date courante
     var b=new Date(2029,2,10); // date à tester
     if(a > b){ alert("false");}else{alert("true");}
    }
    Fonctionne tout aussi bien
    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

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

Discussions similaires

  1. Vérifier qu'une date est supérieure à la date actuelle
    Par lamis2009 dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 24/05/2010, 13h18
  2. [VBA] Sur une saisie oui/non, stocker la date
    Par PhNou dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 04/02/2008, 10h42
  3. [FTP] Supprimer des fichiers supérieurs à une date
    Par Ouark dans le forum Internet
    Réponses: 4
    Dernier message: 03/09/2007, 09h53
  4. Ne pas saisir une date supérieure à la date du jour
    Par jolemoine dans le forum VBA Access
    Réponses: 12
    Dernier message: 24/05/2007, 23h08
  5. Réponses: 2
    Dernier message: 21/03/2007, 16h06

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