Verifier qu'il s'agit bien de chiffre

fille95 Messages postés 72 Statut Membre -  
tite_tête13 Messages postés 145 Statut Membre -
Bonjour,

je voudrai savoir comment fais ton pour verifier qu'il y a bien une date en format date-mois-annee dans un champs.

En faite, il fau verifier deux chose: 1. qu'il s'agit bien de chiffre

2. qu'il s'agit du bon format (date-mois-annee)

merci d'avance
Configuration: Windows XP
Internet Explorer 7.0

4 réponses

  1. macgawel Messages postés 676 Statut Membre 89
     
    Bonjour.

    Ca dépend du langage de programmation, mais sur le principe, c'est bon...
    Ce que tu peux éventuellement faire, c'est tester si le contenu du champ peut bien être transcrit en date.
    0
    1. fille95 Messages postés 72 Statut Membre 1
       
      oui justement comment le fais t-on stp??
      0
  2. macgawel Messages postés 676 Statut Membre 89
     
    Ca dépend du langage de programmation


    ...

    Pour PHP, il y a checkdate
    0
    1. fille95 Messages postés 72 Statut Membre 1
       
      est ce qu'elle existe en JAVASCRIPT??
      0
      1. macgawel Messages postés 676 Statut Membre 89 > fille95 Messages postés 72 Statut Membre
         
        Je ne connais pas trop JS, mais je suis sûr que si tu fais une recherche sur internet (sur ce site, par exemple) avec javascript conversion date (ou un truc du genre), tu trouveras ton bonheur...
        0
      2. fille95 Messages postés 72 Statut Membre 1 > macgawel Messages postés 676 Statut Membre
         
        OK MERCI BCP

        je vais chercher!

        merci
        0
  3. tite_tête13 Messages postés 145 Statut Membre 3
     
    Salut,

    sinon tu peux interdire de taper certains caractères dans ton champ date.

    ce script permet de n'accepter que des chiffres dans ton champ:

    <html>
    <head>
    <title></title>
    </head>
    <body>
    <form>
    <input type="text" name="txtTelephone" onKeypress="
    if(event.keyCode < 45 || event.keyCode > 57) event.returnValue = false;
    if(event.which < 45 || event.which > 57) return false;">
    </form>
    </body>
    </html>

    Après pour vérifier si c'est bien au format date (jour-mois-année) bin............ Je n'sais pas dsl!!!

    J'espère t'avoir un peu aidé ^^.

    Bon courage!!!
    0
    1. fille95 Messages postés 72 Statut Membre 1
       
      merci
      0
      1. tite_tête13 Messages postés 145 Statut Membre 3 > fille95 Messages postés 72 Statut Membre
         
        Salut, je viens de trouver une fonction pour vérifier si c'est au format date :

        <?php
        function validation_date($date){
        /* Fonction générale de vérification */

        /* controle de la longueur de la chaine jj/mm/aaaa = 10 */
        if(strlen($date)==10){
        if(substr($date,2,1)=="/" && substr($date,5,1)=="/"){
        /* les caractères 1 et 6 sont des " / " */
        $jour=intval(substr($date,0,2)); /* PHP numérote les chaines depuis 0 */
        $mois=intval(substr($date,3,2));
        $annee=intval(substr($date,6,4));
        if($mois>=1 && $mois<=12){ /* verifie que le mois verifie 1<mois<12 */
        if($jour<=longueurMois($mois,$annee)){ /* controle le jour par */
        return true; /* rapport a la longueur du mois */
        }
        else {
        return false;
        }
        }
        else {
        return false;
        }
        }
        else {
        return false;
        }
        }
        else {
        return false;
        }
        }

        /* La fonction renvoit la longueur d'un mois précis */
        /* en tenant compte du mois de février et des années bissextiles */

        function longueurMois($mois,$annee){
        if ($mois==4 || $mois==6 || $mois==9 || $mois==11) return 30;
        else if (($mois==2) && estBissextile($annee)) return 29;
        else if ($mois==2) return 28;
        else return 31;
        }

        /* Les années bissextiles sont les années paires divisibles par
        quatre et qui ne sont pas des année de centaine et les années
        de centaine qui sont divisibles par 400.
        (par exemple 1600 était bissextile, 2000 aussi mais pas 1900
        qui est divisible par 4 et paire mais pas divisible par 400) */

        /* fonction appelée par validation_date() */

        function estBissextile($ans){
        if ((($ans % 4 == 0) && $ans % 100 != 0) || $ans % 400 == 0)
        return true;/*c'est une année bissextile */
        else
        return false;/*ce n'en est pas une */
        }
        ?>

        Bonne journée.
        0
  4. petite info Messages postés 65 Statut Membre 10
     
    bon je v te montrer comment le faire en pascal
    tu va utilisé les enregistrement
    par exemple tu entre un numéro
    tu fé read(x);
    apres tu test si x in ['0',..,'9']
    avec tout les champ de la date
    et apres tu contine ton test pour le 2eme prblm
    par exemple le jour
    si 1<x1<31.....ect
    et sa dépend de ton intéligence!!
    c tout
    bonne chance.
    -1
    1. macgawel Messages postés 676 Statut Membre 89
       
      Ouch !
      Ton système ressemble fort à une usine à gaz :
      Beaucoup de travail, et un résultat pas forcément correct.
      Parce qu'une fois qu'on a testé le jour (1<x1<31), il faut encore faire un test par rapport au mois (on ne prend pas le 31 avril, mais on prend le 31 janvier). Et même sur l'année (années bissextiles).

      J'ai eu un programme qui contrôlait les dates plus ou moins comme ça :
      Gestion des années bissextiles calamiteuse.

      Alors qu'il suffit de prendre la saisie complète (JJ/MM/AAAA), et de regarder si on arrive à la transformer en date
      De tête, je dirais (au niveau syntaxe, c'est limite, mais dans l'esprit c'est compréhensible, je pense) :
      function TesterDate(valeur string) {
         result := false;
         try
            StrtoDate (string);
           result := true;
         end try;
         return result;
      }


      Avec un appel à TesterDate à la sortie du champ (ou à l'appui sur la touche Entrée)
      0