<html> <head> <script type="text/javascript"> // La durée d'un jour en milliseconde. const DayDuration =(24 * 60 * 60 * 1000); /** * * Retourne le nombre de jour entre deux dates. * *@param otherDate * Date à tester. */ Date.prototype.getNbDaysBetween = function (otherDate){ // Sauvegarde des heures minutes secondes. afin de les retrancher. var actSecond = this.getSeconds(); var actMinute = this.getMinutes(); var actHour = this.getHours(); // Et maintenant, on repositionne tout ça à zéro, sinon, le calcul va être légèrement faussé. with(this){ setSeconds(0); setHours(0); setMinutes(0); } var actTime = this.getTime(); // Idem pour la seconde date (passée en paramètre otherDate) var oSecond = otherDate.getSeconds(); var oMinute = otherDate.getMinutes(); var oHour = otherDate.getHours(); // Les repositionnes à 0 with(otherDate){ setSeconds(0); setHours(0); setMinutes(0); } var otherTime = otherDate.getTime(); // Effectue la soustraction des deux dates en millisecondes. var minusTime =Math.abs(actTime-otherTime); // Et on réaffecte les valeurs hh:mm:ss // La date en paramètre. with(otherDate){ setSeconds(oSecond); setHours(oHour); setMinutes(oMinute); } // La date de travail. with(this){ setSeconds(actSecond); setHours(actHour); setMinutes(actMinute); } // convertis les millisecondes en jour: return parseInt(minusTime/DayDuration); } function test(){ var d = new Date(); var d2 = new Date("2011/01/21"); if ( d.getNbDaysBetween(d2) < 7){ alert ("d2 is good"); } else{ alert ("d2 is not good"); } var d3= new Date("2011/01/29"); if ( d.getNbDaysBetween(d3) < 7){ alert ("d3 is good"); } else{ alert ("d3 is not good"); } } window.onload =test; </script> </head> </html>