[JAVASCRIPT] convertir une date et comparer
Résolu/Fermé
A voir également:
- [JAVASCRIPT] convertir une date et comparer
- Convertir youtube en mp3 avec audacity - Guide
- Telecharger javascript - Télécharger - Langages
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Formule excel si date supérieur à une autre date ✓ - Forum Excel
7 réponses
Utilisateur anonyme
19 déc. 2005 à 13:07
19 déc. 2005 à 13:07
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> <script> //On suppose que la date entrée a été validée auparavant //au format dd/mm/yyyy function getDate(strDate){ day = strDate.substring(0,2); month = strDate.substring(3,5); year = strDate.substring(6,10); d = new Date(); d.setDate(day); d.setMonth(month); d.setFullYear(year); return d; } //Retorune: // 0 si date_1=date_2 // 1 si date_1>date_2 // -1 si date_1<date_2 function compare(date_1, date_2){ diff = date_1.getTime()-date_2.getTime(); return (diff==0?diff:diff/Math.abs(diff)); } </script> </head> <body> Date 1: <input name="d1" id="d1" type="text" value="01/10/2004" /><br/> Date 2: <input name="d2" id="d2" type="text" value="02/05/2005" /> <p/> <button onclick="javascript: alert(compare(getDate(document.all('d1').value),getDate(document.all('d2').value)));">Comparer</button> </body> </html>
;-)
HackTrack
Il faut penser aussi aux années bissextiles.
Cette année on est en 2007.
Donc si on a :
day = 29
month = 2
year = 2000
Et si on fait ceci :
d = new Date();
d.setDate(day);
d.setMonth(month-1);
d.setFullYear(year);
return d;
On aura en fait dans d le 01/03/2000
Il faudrait indiquer d'abord l'année, puis le mois et enfin le jour :
d = new Date();
d.setFullYear(year);
d.setMonth(month-1);
d.setDate(day);
return d;
Plus simplement on peut faire :
d = new Date(year, month-1, day);
Cette année on est en 2007.
Donc si on a :
day = 29
month = 2
year = 2000
Et si on fait ceci :
d = new Date();
d.setDate(day);
d.setMonth(month-1);
d.setFullYear(year);
return d;
On aura en fait dans d le 01/03/2000
Il faudrait indiquer d'abord l'année, puis le mois et enfin le jour :
d = new Date();
d.setFullYear(year);
d.setMonth(month-1);
d.setDate(day);
return d;
Plus simplement on peut faire :
d = new Date(year, month-1, day);
En faisant appel à la méthode parse de l'obejt Date qui récupère le nombre de milliseconde depuis la date de référence de Javascript (env. 1970).
Il suffit après de faire une différence pour connaître si la date est supérieure, égale ou inférieure.
function fCompareDate(pDateDebut,pDateFin) {
var DureeDebut = Date.parse(pDateDebut);
var DureeFin = Date.parse(pDateFin);
var iComparaison= DureeFin - DureeDebut;
return iComparaison;
}
On peut décliner différemment l'utilisation de cette fonction selon les besoins.
Merci à SelfHTML pour les infos sur l'objet Date.
Lien direct vers la ressource : http://fr.selfhtml.org/javascript/objets/date.htm
Il suffit après de faire une différence pour connaître si la date est supérieure, égale ou inférieure.
function fCompareDate(pDateDebut,pDateFin) {
var DureeDebut = Date.parse(pDateDebut);
var DureeFin = Date.parse(pDateFin);
var iComparaison= DureeFin - DureeDebut;
return iComparaison;
}
On peut décliner différemment l'utilisation de cette fonction selon les besoins.
Merci à SelfHTML pour les infos sur l'objet Date.
Lien direct vers la ressource : http://fr.selfhtml.org/javascript/objets/date.htm
Mmm il n'y a pas un autre problème aussi ?
Lorsque l'on dit new Date(), cela prend la date du jour. Or si par exemple on est en Février avec 28 jours dans le mois...
Si day vaut 31, vu que l'on execute le setDate en premier, la date va valoir 31/02/2006... Qui va etre converti automatiquement en 03/03/2006... Ce qui déjà à partir de là retourne une mauvaise date non ?
A ce moment là on peut tout simplement mettre à la place :
Ainsi on est sur. Parce que Janvier est un mois à 31 jours, donc on ne va pas déborder.
d = new Date(); d.setDate(day); d.setMonth(month-1); d.setFullYear(year); return d;
Lorsque l'on dit new Date(), cela prend la date du jour. Or si par exemple on est en Février avec 28 jours dans le mois...
Si day vaut 31, vu que l'on execute le setDate en premier, la date va valoir 31/02/2006... Qui va etre converti automatiquement en 03/03/2006... Ce qui déjà à partir de là retourne une mauvaise date non ?
A ce moment là on peut tout simplement mettre à la place :
d = new Date(0); //01/01/1970
Ainsi on est sur. Parce que Janvier est un mois à 31 jours, donc on ne va pas déborder.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Zep3k!GnO
Messages postés
2025
Date d'inscription
jeudi 22 septembre 2005
Statut
Membre
Dernière intervention
18 novembre 2015
200
19 déc. 2005 à 11:56
19 déc. 2005 à 11:56
en date javascript
tu veux dire par la ?! ( indique le format ,ex : jj/mm/aaaa)
Zep3k!GnO
tu veux dire par la ?! ( indique le format ,ex : jj/mm/aaaa)
Zep3k!GnO
27 oct. 2006 à 10:21
plutôt que
;)