|
Publicité | ||||||||||||||||||||||
|
|
#1 |
|
Membre du Club
![]() Date d'inscription: avril 2009
Messages: 95
|
Salut,
voila je coince pour comparer 2 dates dans ce format : M/AAAA 7/2009 En fait j'ai un champ date ou l'utilisateur renseigne une date dans ce format : 07/2009 Et je souhaite faire un filtre pour comprer la date rentrée par l'utilisateur et celle du jour avec mois+1 Exemple : la date du jour (date système ou je récupère le mois+1 et l'année pour l'avoir dans ce format ) donc ici la date du jour avec mois+1 est 8/2009 la date renseigner par l'utilisateur : 07/2009 puis après transformation dans ma fonction cela devient 7/2009 Si la date renseignée par l'utilisateur est inférieur à celle du système alors j'affiche un message d'erreur date invalide. Voila j'ai commencé avec cela je récupère mes deux dates dans ce format m/aaaa mais après je bloque pour la comparaison : Code :
function dateDebut() { // date du jour var DateJour=new Date() var mois =DateJour.getMonth()+2 var annee =DateJour.getFullYear() var dateJ = (mois)+"/"+(annee) // date renseignée par l'utilisateur var dateD = document.forms["saisie_avk"].elements["Date_Deb_Validite"].value var DateD = dateD.replace(/0(\d\/)/,"$1") Merci |
|
|
|
|
|
#2 |
![]() Date d'inscription: septembre 2007
Localisation: Madagascar
Messages: 2 025
|
|
|
|
|
|
#3 | |
![]() Date d'inscription: mars 2002
Localisation: Au coeur de la Nébuleuse de la Rainette
Messages: 22 688
|
avec le format M/AAAA il te suffirati de faire un split('/') puis replace du 0 sur M et un reverse join pour que les chaine deviennent comparables
__________________
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts ) Citation:
Votre post a trouvé une réponse qui vous satisfait ? Alors n'oubliez pas le Tag ![]() réalisations web (developpeur et/ou infographiste et/ou chef de projet: www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.sistac-alizay.fr | www.planet-languages.com | www.acoustishop.fr | www.litt.fr |
|
|
|
|
|
#4 |
|
Membre du Club
![]() Date d'inscription: avril 2009
Messages: 95
|
Pour l'instant avec mon code :
Code :
var DateJour=new Date() var mois =DateJour.getMonth()+2 var annee =DateJour.getFullYear() var dateJ = (mois)+"/"+(annee) document.write(dateJ) document.write("<br>") // date renseignée par l'utilisateur var dateD = "10/2009" // document.forms["saisie_avk"].elements["Date_Deb_Validite"].value var DateD = dateD.replace(/0(\d\/)/,"$1") document.write(DateD) date système : 8/2009 date début champ : 6/2009 Maintenant comment je peux faire pour comparer mes deux dates ? Si date début champ < date système alors message erreur votre date de début doit être supérieure ou egale à la date système Merci |
|
|
|
|
|
#5 | |
![]() Date d'inscription: septembre 2007
Localisation: Madagascar
Messages: 2 025
|
Citation:
|
|
|
|
|
|
#6 | |
![]() Date d'inscription: mars 2002
Localisation: Au coeur de la Nébuleuse de la Rainette
Messages: 22 688
|
Code :
// date renseignée par l'utilisateur var dateD = "01/2009"; var DateD = dateD.replace(/^(\d)\//,"0$1").split('/').reverse().join(''); //date de référence var dateR = "03/2009"; var DateR = dateR.replace(/^(\d)\//,"0$1").split('/').reverse().join(''); var test=(DateR>DateD)?"antérieure":"postérieure"; var test=(DateR==DateD)?"égale à":test; alert("la date saisie est "+test+" à la date de référence");
__________________
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts ) Citation:
Votre post a trouvé une réponse qui vous satisfait ? Alors n'oubliez pas le Tag ![]() réalisations web (developpeur et/ou infographiste et/ou chef de projet: www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.sistac-alizay.fr | www.planet-languages.com | www.acoustishop.fr | www.litt.fr |
|
|
|
|
|
#7 |
|
Membre du Club
![]() Date d'inscription: avril 2009
Messages: 95
|
Merci SpaceFrog,
j'ai modifié un peu le code par rapport à mon besoin car mes dates ne sont pas en dures. j'utilise une date système et l'autre date est récupérée d'un champ. Le problème c'est que quand je rentre une date par exemple : Date système = 08/2009 date début champ = 02/2010 mon message m'affiche que la date est antérieure à la date de référence !!! Alors que normalement elle devrait être postérieure..... voici le code complet : Code :
<html> <head> <SCRIPT language=javascript> // date renseignée par l'utilisateur function dateDebut() { var dateD = document.forms["saisie_avk"].elements["Date_Deb_Validite"].value; var DateD = dateD.replace(/^(\d)\//,"0$1").split('/').join(''); document.write(DateD) document.write("<br>") //date du système var DateJour=new Date() var mois =DateJour.getMonth()+2 var annee =DateJour.getFullYear() var dateR = (mois)+"/"+(annee) var DateR = dateR.replace(/^(\d)\//,"0$1").split('/').reverse().join(''); var test=(DateR>DateD)?"antérieure":"postérieure"; var test=(DateR==DateD)?"égale à":test; alert("la date de début est "+test+" à la date de référence, veuillez ressaisir une date valide"); } </script> <body> <form method="post" action="" name="saisie_avk" > <td width="300"> <font size ="2"><b><font color="red">*</font> AVK : Date de début de validité (mm/aaaa) </b></font><input name="Date_Deb_Validite" id="dte_deb_validite" size=10 maxlength=7 onchange="dateDebut(this.form.Date_Deb_Validite)" > </td> </form> </body> </head> </html> |
|
|
|
|
|
#8 | |
![]() Date d'inscription: mars 2002
Localisation: Au coeur de la Nébuleuse de la Rainette
Messages: 22 688
|
Code :
<script type="text/javascript" > // date renseignée par l'utilisateur var dateD = "02/2010"; var DateD = dateD.replace(/^(\d)\//,"0$1").split('/').reverse().join(''); //date de référence var dateR = "08/2009"; var DateR = dateR.replace(/^(\d)\//,"0$1").split('/').reverse().join(''); var test=(DateR>DateD)?"antérieure":"postérieure"; var test=(DateR==DateD)?"égale à":test; alert("la date saisie est "+test+" à la date de référence"); </script> évites le document.write ...
__________________
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts ) Citation:
Votre post a trouvé une réponse qui vous satisfait ? Alors n'oubliez pas le Tag ![]() réalisations web (developpeur et/ou infographiste et/ou chef de projet: www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.sistac-alizay.fr | www.planet-languages.com | www.acoustishop.fr | www.litt.fr |
|
|
|
|
|
#9 |
|
Membre du Club
![]() Date d'inscription: avril 2009
Messages: 95
|
Merci SpaceFrog,
j'ai modifié un peu le code par rapport à mon besoin car mes dates ne sont pas en dures. j'utilise une date système et l'autre date est récupérée d'un champ. Le problème c'est que quand je rentre une date par exemple : Date système = 08/2009 date début champ = 02/2010 mon message m'affiche que la date est antérieure à la date de référence !!! Alors que normalement elle devrait être postérieure..... voici le code complet : Code :
<html> <head> <SCRIPT language=javascript> // date renseignée par l'utilisateur function dateDebut() { var dateD = document.forms["saisie_avk"].elements["Date_Deb_Validite"].value; var DateD = dateD.replace(/^(\d)\//,"0$1").split('/').join(''); document.write(DateD) document.write("<br>") //date du système var DateJour=new Date() var mois =DateJour.getMonth()+2 var annee =DateJour.getFullYear() var dateR = (mois)+"/"+(annee) var DateR = dateR.replace(/^(\d)\//,"0$1").split('/').reverse().join(''); var test=(DateR>DateD)?"antérieure":"postérieure"; var test=(DateR==DateD)?"égale à":test; alert("la date de début est "+test+" à la date de référence, veuillez ressaisir une date valide"); } </script> <body> <form method="post" action="" name="saisie_avk" > <td width="300"> <font size ="2"><b><font color="red">*</font> AVK : Date de début de validité (mm/aaaa) </b></font><input name="Date_Deb_Validite" id="dte_deb_validite" size=10 maxlength=7 onchange="dateDebut(this.form.Date_Deb_Validite)" > </td> </form> </body> </head> </html> |
|
|
|
|
|
#10 |
|
Membre du Club
![]() Date d'inscription: avril 2009
Messages: 95
|
En fait
voila moi je souhaite utiliser la date système comme date de référence. j'utilise donc new date() puis j'utilise getMonth() et getFullYear() pour récupérer le mois et l'année et enfin je concatène le tout. Donc j'obtiens une date dans ce format : 8/2009 Puis j'utilise ta fonction replace pour mettre ma date dans ce format : 082009 Code :
ar DateJour=new Date() var mois =DateJour.getMonth()+2 var annee =DateJour.getFullYear() var dateR = (mois)+"/"+(annee) Code :
var DateR = dateR.replace(/^(\d)\//,"0$1").split('/').reverse().join(''); mais comment faire car ta fonction replace me rajoute bien le 0 dans mon mois mais me sort le résultat sous cette forme 082009 alors qu'il me faut 200908 Merci d'avance |
|
|
|
|
|
#11 | |
![]() Nom : Daniel Hagnoul
Date d'inscription: février 2009
Localisation: Linsmeau, Belgique
Messages: 1 052
|
Bonsoir SpaceFrog.
Citation:
Code :
console.log(dateD.split('/').reverse().join('')); var DateD = dateD.replace(/^(\d)\//,"0$1").split('/').reverse().join('');
__________________
Mon cahier d’exercices sur jQuery & Co
Vous devez avoir lu la dernière version (2010-01-06) de ce message avant d'utiliser le forum jQuery
|
|
|
|
|
|
#12 | |
![]() Date d'inscription: mars 2002
Localisation: Au coeur de la Nébuleuse de la Rainette
Messages: 22 688
|
tu as le meêm resultat parceque les deux dates prises en exemple commencent par 0
essaye un mois à partir de octobre et un autre avant ... pour ce qui est de l'année ... 1002 essaye avec getUTCFullYear
__________________
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts ) Citation:
Votre post a trouvé une réponse qui vous satisfait ? Alors n'oubliez pas le Tag ![]() réalisations web (developpeur et/ou infographiste et/ou chef de projet: www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.sistac-alizay.fr | www.planet-languages.com | www.acoustishop.fr | www.litt.fr |
|
|
|
|
|
#13 |
|
Membre du Club
![]() Date d'inscription: avril 2009
Messages: 95
|
Salut SpaceFrog,
non mais en fait je veux juste transformé ce format : 082009 EN 200908.... Y a t il une fonction ? Merci |
|
|
|
|
|
#14 | |
![]() Date d'inscription: mars 2002
Localisation: Au coeur de la Nébuleuse de la Rainette
Messages: 22 688
|
a ton avis il fait quoi mon scipt ?
il transforme comme ceci: 3/2008 => 03/2008 =>200803 07/2009 => 07/2009 => 200907 10/2005 > 10/2005 => 200510
__________________
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts ) Citation:
Votre post a trouvé une réponse qui vous satisfait ? Alors n'oubliez pas le Tag ![]() réalisations web (developpeur et/ou infographiste et/ou chef de projet: www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.sistac-alizay.fr | www.planet-languages.com | www.acoustishop.fr | www.litt.fr |
|
|
|
|
|
#15 |
|
Membre du Club
![]() Date d'inscription: avril 2009
Messages: 95
|
Désolé mais je viens de tester eh voila le résultat :
si j'ai bien compris j'ai rentré une date Code :
date = "3/2009"
Code :
var DateR = d.replace(/^(\d)\//,"0$1").split('/').reverse().join(''); Normalement d'après toi cela devrait donner : 3/2009 => 03/2009 => 200903 sauf que moi cela me donne : 032009 Voici le code pour tester : Code :
<script> date = "3/2009" var DateR = d.replace(/^(\d)\//,"0$1").split('/').reverse().join(''); document.write("<br>") document.write(DateR); </script> |
|
|
|
|
|
#16 | |
![]() Date d'inscription: mars 2002
Localisation: Au coeur de la Nébuleuse de la Rainette
Messages: 22 688
|
date=
puis d.replace ![]() si tu ne remplace pas dans la bonne variable pas étonnant par contre si tu utilises les bonnes variables: Code :
<script type='text/javascript'> d = "3/2009" alert(d.replace(/^(\d)\//,"0$1").split('/').reverse().join('')); </script>
__________________
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts ) Citation:
Votre post a trouvé une réponse qui vous satisfait ? Alors n'oubliez pas le Tag ![]() réalisations web (developpeur et/ou infographiste et/ou chef de projet: www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.sistac-alizay.fr | www.planet-languages.com | www.acoustishop.fr | www.litt.fr |
|
|
|
|
|
#17 |
|
Membre du Club
![]() Date d'inscription: avril 2009
Messages: 95
|
Oui désolé j'avais vu pour la variable,
oui mais j'ai toujours mon problème : Cela me donne 032009 alors que je souhaite 200903 merci |
|
|
|
|
|
#18 |
![]() Nom : Daniel Hagnoul
Date d'inscription: février 2009
Localisation: Linsmeau, Belgique
Messages: 1 052
|
Bonjour SpaceFrog.
Merci, je crois avoir bien compris maintenant. J'ai fait une petite modification dans le replace Code :
replace(/^(\d)\//,"0$1/") Voici mon test : Code :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="Author" content="Daniel Hagnoul" /> <title>Page type</title> <style type="text/css"> body { background-color:#696969; color:#000000; font-family:Arial, Helvetica, sans-serif; font-size:medium; font-style:normal; font-weight:normal; line-height:normal; letter-spacing:normal; } h1,h2,h3,h4,h5 { font-family:"Times New Roman", Times, serif; } div,p,h1,h2,h3,h4,h5,h6,ul,ol,dl,form,table,img { margin:0px; padding:0px; } p { padding:6px; } ul,ol,dl { list-style:none; padding-left:6px; padding-top:6px; } li { padding-bottom:6px; } div#conteneur { width:95%; margin:12px auto; padding:6px; background-color:#FFFFFF; color:#000000; border:1px solid #666666; font-size:0.8em; } div#affiche { margin:12px; border:1px solid #999999; } </style> <script type="text/javascript" src="http://jqueryjs.googlecode.com/files/jquery-1.3.2.js"></script> <script type="text/javascript"> $(document).ready(function(){ var dates = ["1/2009","2/2009","3/2009","4/2009","5/2009","6/2009","7/2009","8/2009","10/2009","11/2009","12/2009"]; var dlength = dates.length; for (var i in dates) { // date renseignée par l'utilisateur var dateD = dates[i]; var DateD = dateD.replace(/^(\d)\//,"0$1/").split('/').reverse().join(''); //date de référence var dateR = "10/2009"; var DateR = dateR.replace(/^(\d)\//,"0$1/").split('/').reverse().join(''); var test=(DateR>DateD)?"antérieure":"postérieure"; var test=(DateR==DateD)?"égale à":test; //alert("la date saisie est "+test+" à la date de référence"); $("#affiche").append("<p>La date saisie " + DateD + " est " + test + " à la date de référence " + DateR + ".</p>"); } }); </script> </head> <body> <div id="conteneur"> <p> Le code transforme comme ceci :<br /> <br /> 3/2008 => 03/2008 =>200803<br /> 07/2009 => 07/2009 => 200907<br /> 10/2005 > 10/2005 => 200510 </p> <div id="affiche"></div> </div> </body> </html>
__________________
Mon cahier d’exercices sur jQuery & Co
Vous devez avoir lu la dernière version (2010-01-06) de ce message avant d'utiliser le forum jQuery
|
|
|
|
|
#19 | |
![]() Date d'inscription: mars 2002
Localisation: Au coeur de la Nébuleuse de la Rainette
Messages: 22 688
|
a priori un petit souci avec le regExp sous js ...
celle ci sera plus universelle Code :
alert(d.replace(/^(\d\/)/,"0$1").split('/').reverse().join('')); d'ailleurs ceci aussi fonctionne: Code :
d.replace(/^(\d)\//,"0$1/").split('/').reverse().join('');
__________________
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts ) Citation:
Votre post a trouvé une réponse qui vous satisfait ? Alors n'oubliez pas le Tag ![]() réalisations web (developpeur et/ou infographiste et/ou chef de projet: www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.sistac-alizay.fr | www.planet-languages.com | www.acoustishop.fr | www.litt.fr |
|
|
|
|
|
#20 |
|
Membre du Club
![]() Date d'inscription: avril 2009
Messages: 95
|
Merciiiiiiiiiiiiii à vous deux ça fonctionne........................
|
|
|
|
|
|
![]() |
||
comparaison date système date utilisateur
|
||
| Outils de la discussion | |
|
|