Bonjour
moi je suis en forme ;o)
Le plus simple est de mettre en place une méthode au sein de la classe Date fournis par Javascript:
voici donc, le résultat que j'ai obtenue (avec un petit jeu d'essais aussi )
Code Javascript :
<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>
<body>
</body>
</html>
ainsi pour l'adapter au traitent souhaité:
var toDay = new Date();
var dateArticle = [la date de l'article]
if (toDay.getNbDaysBetween (dateArticle) <=7){
// je lis l'article.
}
else{
// je ne lis pas l'article alors je fais autre chose !
}
en espérant que cela réponde à la question.
[o-_-o]