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 :

Problème de comparaison de dates


Sujet :

JavaScript

  1. #1
    Membre éclairé Avatar de griese
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    646
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juin 2006
    Messages : 646
    Par défaut Problème de comparaison de dates
    Bonjour à tous,
    J'utilise une fonction qui me permet de comparer deux dates. Car en fait je ne veux pas que la première date saisie soit supérieur à la seconde. Voici ma fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    function Compare_Dates(valeur_date1, valeur_date2)
    {var tabDate1 = valeur_date1.split('/');
     var datTest_Date1 = new Date(parseInt(tabDate1[2]), parseInt(tabDate1[1])-1, parseInt(tabDate1[0]));
     var tabDate2 = valeur_date2.split('/');
     var datTest_Date2 = new Date(parseInt(tabDate2[2]), parseInt(tabDate2[1])-1, parseInt(tabDate2[0]));
     
     if (datTest_Date1 < datTest_Date2) return 1;
     if (datTest_Date1 == datTest_Date2) return 0;
     if (datTest_Date1 > datTest_Date2) return -1;
    }
    Et voici l'endroit où je l'appel dans ma page :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <form name='form' action='insert_modif_projet.php' method='POST'
    onsubmit='return (Verif_Date(document.form.debut.value) 
    && Verif_Date(document.form.fin.value) 
    && verif_champ(document.form.code_projet.value) 
    && verif_champ(document.form.designation.value) 
    && verif_champ(document.form.abrege.value)) 
    && if (Compare_Dates(document.form.debut.value, document.form.fin.value)=='-1') alert('La date de début est supérieur à la date de fin');'>
    Malheureusement, même si la première date est supérieur à la seconde, le message d'alert n'apparaît pas. Pourriez-vous m'aider s'il vous plaîr ? Merci

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    93
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 93
    Par défaut
    essaie plutot de mettre tes dates au format aaaammjj comme ca il te suffit de comparer deux numériques c'est beaucoup plus simple!

  3. #3
    Membre éclairé Avatar de linar009
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    497
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 497
    Par défaut
    Essaie plutôt :
    if (datTest_Date1.getTime() < datTest_Date2.getTime()) return 1;

  4. #4
    Membre éclairé Avatar de griese
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    646
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juin 2006
    Messages : 646
    Par défaut
    J'ai suivi ton conseil et j'ai mis ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    function Compare_Dates(valeur_date1, valeur_date2)
    {var tabDate1 = valeur_date1.split('/');
     var datTest_Date1 = new Date(parseInt(tabDate1[2]), parseInt(tabDate1[1])-1, parseInt(tabDate1[0]));
     var tabDate2 = valeur_date2.split('/');
     var datTest_Date2 = new Date(parseInt(tabDate2[2]), parseInt(tabDate2[1])-1, parseInt(tabDate2[0]));
     
     if (datTest_Date1.getTime() < datTest_Date2.getTime()) return 1;
     if (datTest_Date1.getTime() == datTest_Date2.getTime()) return 0;
     if (datTest_Date1.getTime() > datTest_Date2.getTime()) return -1;
    }
    Et ca ne change rien à mon probleme.
    Sinon comment je fais pour passer des dates au format numérique ?

  5. #5
    Membre éclairé Avatar de linar009
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    497
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 497
    Par défaut
    Justement avec la méthode getTime(), tu récupère la date en millisecondes (durée en millisecondes entre la date souhaitée et le 1er janvier 1970)
    Donc bien une valeur numérique ...
    Lorsque tu fais un alert de tes dates et de tes getTime(), tu trouves bien ce que tu attends ?

  6. #6
    Membre éclairé Avatar de griese
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    646
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juin 2006
    Messages : 646
    Par défaut
    En fait je viens de m'apercevoir que ma fonction n'est pas executé, comment cela ce fait-il ?

  7. #7
    Membre éclairé Avatar de linar009
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    497
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 497
    Par défaut
    Ben écoute, ça c'est plutôt un problème d'appel de fonctions et là avec l'extrait de code que tu as donné, ça risque d'etre plutot difficile de repérer le problème...

  8. #8
    Membre éclairé Avatar de griese
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    646
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juin 2006
    Messages : 646
    Par défaut
    C'est bon problème résolu. En fait voici comment était appelé la fonction dans mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    onsubmit='return if (Compare_Dates(document.form.debut.value, document.form.fin.value)=='-1') alert('La date de début est supérieur à la date de fin');'>
    Evidemment cela ne marchait pas j'ai donc modifié mon appel de fonction ainsi que ma fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    onsubmit='return Compare_Dates(document.form.debut.value, document.form.fin.value);'>
    Et voila ma fonction modifié :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    function Compare_Dates(valeur_date1, valeur_date2)
    {
     var tabDate1 = valeur_date1.split('/');
     var datTest_Date1 = new Date(parseInt(tabDate1[2]), parseInt(tabDate1[1])-1, parseInt(tabDate1[0]));
     var tabDate2 = valeur_date2.split('/');
     var datTest_Date2 = new Date(parseInt(tabDate2[2]), parseInt(tabDate2[1])-1, parseInt(tabDate2[0]));
     
     if (datTest_Date1 > datTest_Date2 )
     { alert ("La date de début est plus récente que la date de fin")
       return false
     }
    }
    Avec ça, y'a aucun souci, merci pour votre aide à tous les deux

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

Discussions similaires

  1. Problème de comparaison de date
    Par trigone dans le forum Langage
    Réponses: 3
    Dernier message: 25/06/2008, 08h44
  2. Problème de comparaison de dates
    Par Siguillaume dans le forum Langage
    Réponses: 6
    Dernier message: 19/06/2008, 14h22
  3. problème de comparaison de date (si de différentes années)
    Par jamesleouf dans le forum Requêtes et SQL.
    Réponses: 0
    Dernier message: 23/05/2008, 11h20
  4. Problème sur comparaison de date
    Par Nixar dans le forum Langage SQL
    Réponses: 4
    Dernier message: 07/12/2007, 09h19
  5. Problème de comparaison de dates
    Par MiJack dans le forum Langage SQL
    Réponses: 2
    Dernier message: 12/03/2004, 21h43

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