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 :

verifier date en javascript


Sujet :

JavaScript

  1. #1
    Membre éclairé Avatar de kaking
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    753
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2008
    Messages : 753
    Par défaut verifier date en javascript
    bonjour a tous!

    'oilou, j'ai actuellement un petit script qui permet de savoir si la date entrée en parametre est inferieure a la date du jour qui marche super :

    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
    function verif(){
    var sdate = document.forms['formulaire'].elements['date_relance'].value;
    var date = new Date();
    date.setFullYear(sdate.substr(6,4));
    date.setMonth(parseInt(sdate.substr(3,2),10) - 1);
    date.setDate(sdate.substr(0,2));
    date.setHours(0);
    date.setMinutes(0);
    date.setSeconds(0);
    date.setMilliseconds(0);
    da=((date.getTime()/1000));
     
    var nowdate = new Date();
    now=((nowdate.getTime())/1000);
     
    if(now > da)
    {
    alert('la date relance est anterieur a la date actuelle!');
    return false;
    }
    return true;
    }
    mais maintenant je voudrait verifier si la date rentrée fait partie du mois en cours (du genre si on est le 30/01/2010 et que l'utilisateur rentre 01/01/2010, ca return true) mais je sais pas trop comment faire, si vous avez une idee siouplais?

    merchi!

  2. #2
    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
    il me semble que javatwister avait proposé il y a maintenant quelques années un script de validation de date
    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 !

  3. #3
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Par défaut
    il te suffit de faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <script type="text/javascript">
    			//( format anglais /!\ )
    			var t=Date.parse("01/01/2010"); //début du mois 
    			var e=Date.parse("01/31/2010"); //fin du mois
    			var s=Date.parse("02/25/2010"); //date a vérifier
    			if(s >= t & s <=e){
    				alert("Fais partie du mois : "+t + "\n"+e+ "\n"+s);
    			}
    			else{
    				alert("Fais ne fait pas partie du mois : "+t + "\n"+e+ "\n"+s);
    			}
    		</script>

  4. #4
    Rédacteur
    Avatar de bigboomshakala
    Homme Profil pro
    Consultant Web .NET
    Inscrit en
    Avril 2004
    Messages
    2 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant Web .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 2 077
    Par défaut
    salut,

    les divisions par 1000 sont inutiles dans ton scripts

    pour savoir si 2 dates sont dans le même mois il te suffit de comparer le mois et l'année... si ce sont les même c'est gagné

  5. #5
    Membre éclairé Avatar de kaking
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    753
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2008
    Messages : 753
    Par défaut
    heu merchi le chomeur, mais si je mets ton code, ca alert

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
    fais, ne fais pas parti du mois : 1262300400000
    1264892400000
    1267052400000

    ???

  6. #6
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Par défaut
    tu aurais pu analyser un minimum ;-) :


    Date.parse , renvoi le nombre de milliseconde de la date en paramètre depuis 1970.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    //( format anglais /!\ )
    var t=Date.parse("01/01/2010"); //début du mois 
    var e=Date.parse("01/31/2010"); //fin du mois
    var s=Date.parse("02/25/2010"); //date a vérifier
    Si dateavérifier >= a début du mois ET dateavérifier <= date fin du mois
    alors on affiche l'alert, libre a toi de faire ce que tu veux a partir d'ici

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if(s >= t & s <=e){
    				alert("Fais partie du mois : "+t + "\n"+e+ "\n"+s);
    			}
    			else{
    				alert("Fais ne fait pas partie du mois : "+t + "\n"+e+ "\n"+s);
    			}

  7. #7
    Membre éclairé Avatar de kaking
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    753
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2008
    Messages : 753
    Par défaut
    j'avais pas compris scuse!


    merci, j'ai capté!


  8. #8
    Expert éminent

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Par défaut ?!
    Bonjour,

    Le problème de kaking n'est pas résolu. Le chomeur prend le début et la fin de mois... d'un mois qu'il choisit en dur. Ici, c'est le mois courant, donc kaking va devoir avant tout récupérer le mois courant. Si il sait récupérer le mois courant, il sait récupérer le mois qu'on lui donne. Il n'y a plus qu'à les comparer.

    Ou alors, je n'ai rien compris.

  9. #9
    Membre éclairé Avatar de kaking
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    753
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2008
    Messages : 753
    Par défaut
    ....


    ....




    +1 vermine.....




    comment faire ?

  10. #10
    Expert éminent

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582

  11. #11
    Membre éclairé Avatar de kaking
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    753
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2008
    Messages : 753
    Par défaut
    ué, merchi, je vais chercher un peu et je reviens avec queqchose de plus solide!


    merci

  12. #12
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Par défaut
    ... nous somme ici pour aider non pour réaliser tout le boulot ...


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    function isInMonth(dateStart,dateEnd,dateTest){
    //( format anglais /!\ )
    			var t=Date.parse(dateStart); //Date de début
    			var e=Date.parse(dateEnd); //Date de fin
    			var s=Date.parse(dateTest); //date a vérifier
    			if(s >= t & s <=e){
    				return true
    			}
    			else{
    				return false
    			}
    }
    voila je pense que c'est assez clair , cela test une date dans un interval ...

    pour tester sur une date en français, je te laisse chercher un script permettant de transformer une date FR en EN ;-) il y en a sur le forum

  13. #13
    Expert éminent

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Par défaut
    Je suis bien d'accord, le chomeur, mais pourquoi (notez l'effort) créer un intervalle et donc construire deux dates à partir de du mois de la date courante, alors qu'il suffit de récupérer le mois de la date courante et le comparer avec celui donnez par l'utilisateur. Je n'ai pas inventé la fonction getMonth(). Elle existait déjà.

  14. #14
    Membre éclairé Avatar de kaking
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    753
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2008
    Messages : 753
    Par défaut



    c'est justement pour eviter la bouillie machée que j'ai prevenu que je revenai avec du code -non mais, suis pas un parasite moi !





    quoi qu'il en soit, merci bien, ca me depanne grave!





    @vermine : l'un empeche pas l'autre, je vais utiliser getmonth pour le passer en parametre! merci

  15. #15
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Citation Envoyé par vermine Voir le message
    il suffit de récupérer le mois de la date courante et le comparer avec celui donnez par l'utilisateur.
    Je pense que Bigboomshakala répondait déjà dans le même sens

    A+

  16. #16
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Par défaut
    parce que j'ai étendu a un intervall au lieu de juste extraire le mois courant

  17. #17
    Expert éminent

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Par défaut
    Citation Envoyé par bigboomshakala Voir le message
    pour savoir si 2 dates sont dans le même mois il te suffit de comparer le mois et l'année... si ce sont les même c'est gagné

    kaking, j'oubliais, il faut comparer l'année aussi.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    getFullYear(); //année sur 4 chiffres
    getYear(); //année sur 2 chiffres

    D'accord, le chomeur, je vais aller dormir. Je pense que je suis trop fatigué. ^^

  18. #18
    Membre éclairé Avatar de kaking
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    753
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2008
    Messages : 753
    Par défaut
    c'est justement ce que j'ai fais, encore merci

  19. #19
    Membre éclairé Avatar de kaking
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    753
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2008
    Messages : 753
    Par défaut
    'oilou, c'est ce que j'ai fais :

    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
     
    	var sdate = document.forms['formulaire'].elements['date_relance'].value;
    	var d = new Date();
    	var year=d.getYear();
    	var sdatemois=sdate.substr(3,2);
    	var sdateyear=sdate.substr(6,4);
    	var mon=d.getMonth();
     
    	switch(mon)
    	{	
    		case 0:
    		 var monss='01';
    		break;
     
    		case 1:
    		var monss='02';
    		break;
     
    		case 2:
    		var monss='03';
    		break;
     
    		case 3:
    		var monss='04';
    		break;
     
    		case 4:
    		var monss='05';
    		break;
     
    		case 5:
    		var monss='06';
    		break;
     
    		case 6:
    		var monss='07';
    		break;
     
    		case 7:
    		var monss='08';
    		break;
     
    		case 8:
    		var monss='09';
    		break;
     
    		case 9:
    		var monss='10';
    		break;
     
    		case 10:
    		var monss='11';
    		break;
     
    		case 11:
    		var monss='12';
    		break;
    	}
     
    	if((sdatemois >= monss && sdateyear == year)|| sdateyear > year)
    	{
    		return true;
    	}
    	else
    	{
    		alert('la date relance est anterieur au mois actuel!');
    		return false;
    	}
    }

    et ca marche!

  20. #20
    Expert éminent

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Par défaut Default
    Félicitations et merci d'avoir posté le code.
    Juste une petite remarque, si par malheur on ne trouve aucune correspondance dans le switch, que va-t-il se passer ? :o
    Peut-être faut-il mettre un default:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    case 11:
    var monss='12';
    break;
     
    default:
    var monss='00';
    break;
    Et encore une chose, vous êtes conscient que vous comparez des chaines de caractères et non des nombres ? Dans ce cas-ci, ça fonctionnera car vous avez bel et bien "01" au lieu de "1" mais sinon ça aurait pu poser problème. La suite 1, 2, 3, 10, 11 donne ceci dans l'ordre alphabétique:

    1, 10, 11, 2, 3

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

Discussions similaires

  1. format date validator javascript?
    Par cyrano_de_bergerac dans le forum ASP.NET
    Réponses: 10
    Dernier message: 31/12/2007, 13h42
  2. format date validator javascript?
    Par cyrano_de_bergerac dans le forum C#
    Réponses: 1
    Dernier message: 21/12/2007, 14h06
  3. validation fomat date en javascript
    Par badoress dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 03/10/2007, 11h35
  4. convertir, verifier date, année
    Par regis94 dans le forum Access
    Réponses: 4
    Dernier message: 18/08/2006, 10h04
  5. Date et javascript
    Par Jéjé81 dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 09/11/2004, 23h57

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