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 :

comparaison date formulaire et date jour


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Homme Profil pro
    etudiant
    Inscrit en
    Décembre 2011
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : etudiant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 54
    Points : 19
    Points
    19
    Par défaut comparaison date formulaire et date jour
    Bonjour à tous.

    J'ai un formulaire dans lequel j'ai un champ où l'on doit saisir une date, je voudrais émettre une alerte si le champ saisie est antérieur à la date du jour.

    J'ai été voir dans la faq et je suis tomber sur une comparaison de date sauf que ça ne m'a pas vraiment aidé puisque les dates étaient définis dans la fonction (et donc avait le même format).

    Voici ce que j'ai fait:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <td><b class=colname> Rappeler le </b></td>
    					<td><input type="text" name="DATE_RAPPEL" size="12" id="date_rappel" onblur="verifdate()" value="">
                        <IMG style="CURSOR: hand" onclick  ="popUpCalendar(this, document.loadaction.DATE_RAPPEL,'dd/mm/yyyy');return false;" alt="Pick a Date" src="img/ew_calendar.gif" >   </td>
    fonction javascript:
    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
     <script language="javascript">  
     function verifdate() 
     {      
    	  var daterappel=document.getElementById("date_rappel").value;	
    	  var datejour=new Date();
     
     
    if(datejour > daterappel)
    alert("datejour est plus récente");
    else if(datejour < daterappel)
    alert("daterappel est plus récente");
    else
    alert("datejour et daterappel sont la même date"); 
     
    }
    résultat: on rentre tout le temps dans => alert("datejour et daterappel sont la même date");
    assez basique comme code je l'avoue mai mon problème vient je pense d'une différence de format entre les deux dates.

    j'ai tenté de faire ça aussi:
    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
    function verifdate() 
     {      
    	  var daterappel=document.getElementById("date_rappel").value;	
    	  var dateform=new Date(daterappel);
    	  var datejour=new Date();
     
     
    if(datejour > dateform)
    alert("datejour est plus récente");
    else if(datejour < dateform)
    alert("dateform est plus récente");
    else
    alert("datejour et dateform
     sont la même date"); 
     
    }

    mais sans succès

    Aidez moi s'il vous plait

  2. #2
    Membre actif
    Inscrit en
    Décembre 2009
    Messages
    282
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 282
    Points : 286
    Points
    286
    Par défaut
    C'est plus propre que ton ancien POST déjà :p
    Mis-à part le

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <script language="javascript">
    donne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <script language="text/javascript">

    Sinon pour la solution, je pense qu'il faut initialiser dateForm autrement:
    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
     
     
    function verifdate() 
     {      
    	  var daterappel=document.getElementById("date_rappel").value;	
    	  var array = daterappel.split("/");
    	  var dateform= new Date();
    	  dateform.setDate(array[0]);
    	  dateform.setMonth(array[1]);
    	  dateform.setYear(array[2]);
     
    	  var datejour=new Date();
     
     
    if(datejour > dateform)
    alert("datejour est plus récente");
    else if(datejour < dateform)
    alert("dateform est plus récente");
    else
    alert("datejour et dateform
     sont la même date"); 
     
    }

  3. #3
    Membre à l'essai
    Homme Profil pro
    etudiant
    Inscrit en
    Décembre 2011
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : etudiant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 54
    Points : 19
    Points
    19
    Par défaut
    C'est plus propre que ton ancien POST déjà :p
    j'ai pas tout compris

    J'ai essayé ta solution pour le dateform mais malheureusement on arrive toujours à la même chose

    Merci

  4. #4
    Membre actif
    Inscrit en
    Décembre 2009
    Messages
    282
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 282
    Points : 286
    Points
    286
    Par défaut
    C'est plus propre que ton ancien POST déjà :p
    Autant pour moi j'ai confondu avec ce post la, qui veut faire exactement la meme chose que toi je pense !!


    Fais des alert pour savoir, et dis nous ce que ca renvoie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    var daterappel=document.getElementById("date_rappel").value;	
    alert(daterappel);

  5. #5
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var d=new Date()
    var d2=new Date(2012, 1, 16);// date saisie
    alert(d2<d)

  6. #6
    Membre à l'essai
    Homme Profil pro
    etudiant
    Inscrit en
    Décembre 2011
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : etudiant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 54
    Points : 19
    Points
    19
    Par défaut
    Autant pour moi j'ai confondu avec ce post la, qui veut faire exactement la meme chose que toi je pense !!
    Ah effectivement ça se ressemble

    J'ai testé avec des alertes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    var daterappel=document.getElementById("date_rappel").value;	
    	  alert(daterappel);
    	  var array = daterappel.split("/");
    	  var dateform= new Date();
    	  dateform.setDate(array[0]);
    	  dateform.setMonth(array[1]);
    	  dateform.setYear(array[2]);
     	  var datejour=new Date();
    	  alert(datejour);
    alert(daterappel) renvoie bien la date remplis dans le formulaire (ex: 15/02/2012)

    alert(datejour) renvoie Wed Feb 15 2012 11:20:47 GMT+0100 (Paris, Madrid) je l'avais testé tout à l'heure et du coup je me suis dis qu'il allait m'être impossible de déconcaténer pour avoir un format identique à la date du formulaire.

    J'ai pensé à mettre la date du jour en php et l'utiliser dan mon javascript, cependant c'est pas vraiment conseillé alors je ne vais pas le faire

    var d2=new Date(2012, 1, 16);
    j'ai pas vraiment compris pourquoi 2012,1,16 ?


    Merci encore

  7. #7
    Membre actif
    Inscrit en
    Décembre 2009
    Messages
    282
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 282
    Points : 286
    Points
    286
    Par défaut
    J'avais oublié les parseint c'est pour ca ....

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    var dateform=new Date(parseInt(array[2]), parseInt(array[1]), parseInt(array[0]));
    si ca marche pas fais des alert de array[0],array[1],array[2] !!

  8. #8
    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
    Citation Envoyé par ticroch Voir le message
    Mis-à part le

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <script language="javascript">
    donne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <script language="text/javascript">

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <script type="text/javascript">

  9. #9
    Membre à l'essai
    Homme Profil pro
    etudiant
    Inscrit en
    Décembre 2011
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : etudiant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 54
    Points : 19
    Points
    19
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    var dateformjour=dateform.setDate(array[0]);
    	  var dateformmois=dateform.setMonth(array[1]);
    	  var dateformanne=dateform.setYear(array[2]);
    alert(dateformjour,dateformmois,dateformanne);
    j'avais essayé ça, ça me donnait un résultat qui est une suite de chiffre qui correspond pas vraiment à la date

    Je vais essayé avec les parsesInt de suite merci !

  10. #10
    Membre actif
    Inscrit en
    Décembre 2009
    Messages
    282
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 282
    Points : 286
    Points
    286
    Par défaut
    oups oui dsl vermine, j'ai vu une erreur mais pas l'autre :p

  11. #11
    Membre actif
    Inscrit en
    Décembre 2009
    Messages
    282
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 282
    Points : 286
    Points
    286
    Par défaut
    alert(dateformjour,dateformmois,dateformanne);
    Ca ta meme aps donné une erreur ca ?? je pensait dans alert on ne pouvait donner qu'une variable ....

  12. #12
    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
    Comme expliqué dans la Faq, le nombre de paramètres passés importe parfois très peu.

    Donc l'alert n'affiche que le premier paramètre trouvé, mais ne plante pas.

  13. #13
    Membre à l'essai
    Homme Profil pro
    etudiant
    Inscrit en
    Décembre 2011
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : etudiant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 54
    Points : 19
    Points
    19
    Par défaut
    Ca ta meme aps donné une erreur ca ?? je pensait dans alert on ne pouvait donner qu'une variable ....
    non c'est passé

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     var daterappel=document.getElementById("date_rappel").value;	
    	  alert(daterappel);
    	  var array = daterappel.split("/");
    	  var dateform=new Date(parseInt(array[2]), parseInt(array[1]), parseInt(array[0]));
    	  var dateformjour=dateform.setDate(array[0]);
    	  var dateformmois=dateform.setMonth(array[1]);
    	  var dateformanne=dateform.setYear(array[2]);
     	  var datejour=new Date();
    	  // alert(datejour);
    	  alert(dateformjour,dateformmois,dateformanne);
    j'ai testé ça, ça me renvoie '1331334000000' ce qui je dois bien l'avouer me dis pas grand chose



    ps: ça me renvoie la même chose avec 3 alertes différentes

  14. #14
    Membre actif
    Inscrit en
    Décembre 2009
    Messages
    282
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 282
    Points : 286
    Points
    286
    Par défaut
    lol vire moi les me... que tu nous a écris entre 2 :p

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     var daterappel=document.getElementById("date_rappel").value;	
    	  alert(daterappel);
    	  var array = daterappel.split("/");
    	  var dateform=new Date(parseInt(array[2]), parseInt(array[1]), parseInt(array[0]));
    	  alert(dateform);
     	  var datejour=new Date();
    	  alert(datejour);

  15. #15
    Membre à l'essai
    Homme Profil pro
    etudiant
    Inscrit en
    Décembre 2011
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : etudiant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 54
    Points : 19
    Points
    19
    Par défaut
    Ah oui autant pour moi

    J'ai donc testé et ça me renvoie bien 2 dates du même style que:
    "Wed Feb 15 2012 11:20:47 GMT+0100 (Paris, Madrid) "

    sauf que maintenant dans ma comparaison de date:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if(datejour > dateform)
    alert("datejour est plus récente");
    else if(datejour < dateform)
    alert("dateform est plus récente");
    else
    alert("datejour et dateform sont la même date");
    on rentre toujours dan la 2e condition quelque soit la valeur de la date rentré.


    EDIT=> après d'autres essai je m'aperçois qu'il y à une comparaison avec l'année et le mois. Mai lorsque nous sommes dans le même moi et la même année ça ne fonctionne pas

  16. #16
    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
    C'est peut-être le cas.
    Les mois commencent à zéro, sinon, l'heure est sans doute prise en compte.

  17. #17
    Membre actif
    Inscrit en
    Décembre 2009
    Messages
    282
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 282
    Points : 286
    Points
    286
    Par défaut
    oui c'est vrai j'y ai pensé aussi que l'heure pouvait faire ch...

    quand tu fais les alert il te renvoie bien la bonne date ??

  18. #18
    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 Faq you ♪ Faq you very muuu-uuu-uuuch ♫
    Essaie quand même la méthode conseillée (à l'époque) dans la Faq.

  19. #19
    Membre à l'essai
    Homme Profil pro
    etudiant
    Inscrit en
    Décembre 2011
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : etudiant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 54
    Points : 19
    Points
    19
    Par défaut
    Les mois commencent à zéro
    effectivement j'avais oublié décidément aujourd'hui je fais plein de conneries

    j'ai modifié ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var dateform=new Date(parseInt(array[2]), parseInt(array[1])-1, parseInt(array[0]));
    Bon alors en fait je me suis rendu compte que tout marche (à part les heures effectivement) mais sachant que dans mon formulaire on ne renseigne pas forcément ces champs je vais pas les prendre en compte!

    Merci à tous pour votre aide

  20. #20
    Membre actif
    Inscrit en
    Décembre 2009
    Messages
    282
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 282
    Points : 286
    Points
    286
    Par défaut
    Bon alors en fait je me suis rendu compte que tout marche (à part les heures effectivement) mais sachant que dans mon formulaire on ne renseigne pas forcément ces champs je vais pas les prendre en compte!
    Du coup tu n'arrivera jamais dans le dernier cas ou les dates sont les mêmes. Pour un même jour, il te répondra tout le temps que la date passée dans le formulaire est antérieure à la date d'aujourd'hui !!!

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [XL-2007] couleur cellule date differente si date passee, ou date du jour
    Par chris09300 dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 29/03/2011, 08h24
  2. Réponses: 4
    Dernier message: 19/03/2008, 11h50
  3. [Oracle] Comparaison d'une date avec la date du jour.
    Par mika0102 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 12/10/2007, 11h52
  4. [Formulaire] Ajouter des jours à une date
    Par atlantideD dans le forum IHM
    Réponses: 2
    Dernier message: 21/05/2007, 10h07
  5. Réponses: 7
    Dernier message: 12/01/2007, 11h09

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