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

jQuery Discussion :

jquery.validity - Comparaison de dates


Sujet :

jQuery

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 36
    Par défaut jquery.validity - Comparaison de dates
    Bonjour,

    J'ai un petit problème de configuration de ce plugin dispo ici :
    http://validity.thatscaptaintoyou.co...ngMatchSupport

    Mes dates dans mon formulaire : DD/MM/YYYY.
    En modifiant le regex (pattern), j'ai réussi à faire valider (fonction match) les dates dans ce format.

    Mon problème se trouve plutôt dans la fonction greaterthan.

    J'ai voulu faire une vérification de la date entrer, qu'elle soit supérieur à celle d'aujourd'hui. Par contre, la date est comparer avec une date au format US.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $("#date1")
    	            .require()
    				.match('date')
    				.greaterThan(new Date());
    Lorsque je tape 02/09/2011, il me met : La date doit être supérieur à 1/9/2011.
    Pareil si je tape 01/10/2011.

    Par contre, si je saisi 11/10/2011, ca passe...

    Comment faire en sorte que la date du jour soit au bon format ?

    Merci d'avance pour votre aide en espérant avoir été assez clair.

    Ilan

  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 : 54
    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
    Je ne connais pas ce plugin, mais une chose est sûre, vouloir comparer un format textuel "dd/mm/aaaa" avec new Date() ressemble plus à une vue de l'esprit qu'à une technique de codage fonctionnelle
    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
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Par défaut
    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
    date1="12/05/2011"
    date2="05/07/2007"
     
    function comparedate(d1,d2){
    d1=d1.split('/').reverse().join('')
    d2=d2.split('/').reverse().join('')
     
    switch (true){
    case (d1==d2) :  return "égalité ";
    		break;	
    case (d1>d2) :  return "plus grand";
    		break;	
     
    case (d1<d2) :  return "plus petie";
    		break;	
    }
     
    }
    alert( comparedate(date1,date2) )
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 36
    Par défaut
    Merci à tous pour votre aide.

    J'ai réussi en inversant le string envoyé à la fonction du plugin. J'ai crée une fonction similaire. Ca donne ça :

    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
    greaterThanS:function(min, msg) {
                return validate(
                    this,
     
                    min.getTime ?
                        function(obj) {
                            var tmp = obj.value.split('/');
    						tmp = [tmp[1], tmp[0], tmp[2]].join('/');
                            return new Date(tmp) > min;
                        } :
     
                        min.substring && Big ?
     
                            function(obj) {
                               return new Big(obj.value).greaterThan(new Big(min)); 
                            } :
     
                            function(obj) {
                                return parseFloat(obj.value) > min;
                            },
     
                    msg || format(
                        $.validity.messages.greaterThan, {
                            min:$.validity.settings.argToString(min)
                        }
                    ) 
                );
            },
    Voilà, si ça peut aider

  5. #5
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Par défaut
    Je conseillerais plutot de faire l'inverse: laisser la comparaison entre deux dates car là il faut que les deux dates soient exactement du même format

    ex: jj/mm/aaa

    si l'une est jj/mm/aaaa et l'autre j/m/aaaa ça ne focntionnera pas

    il suffit de setter le new Date() à partir d'ein split du value poru faire un set fullYear() setMonth() et setDate()
    La comparaison se fera alors entre deux Dates
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 36
    Par défaut
    Il y a le match qui vérifie juste avant que les 2 dates sont au bons format donc si je saisi une date au format J/M/YYYY, la fonction match qui est appelé avant la greaterthan affichera une erreur pour bien formater la date vers JJ/MM/YYY et donc on compare bien 2 dates du même format.

  7. #7
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Par défaut
    c'est pas faux ... sauf si le gars saisit 31/02/2011

    comparer des dates est quand même plus sur ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

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

Discussions similaires

  1. [Toutes versions] Comparaison de dates en vue d'une validation
    Par DamKre dans le forum IHM
    Réponses: 13
    Dernier message: 29/04/2014, 21h40
  2. [Validator] comparaison de dates
    Par jeb001 dans le forum Struts 1
    Réponses: 0
    Dernier message: 05/08/2008, 10h58
  3. Validation, comparaison date
    Par kalurar dans le forum Struts 2
    Réponses: 6
    Dernier message: 14/08/2007, 17h14
  4. Comparaison de dates
    Par Tapioca dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 16/06/2004, 15h55
  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