Comparer avec date du jour et afficher article en fonction

cdoliv Messages postés 4 Date d'inscription jeudi 21 octobre 2010 Statut Membre Dernière intervention 21 janvier 2011 - 21 janv. 2011 à 12:10
cdoliv Messages postés 4 Date d'inscription jeudi 21 octobre 2010 Statut Membre Dernière intervention 21 janvier 2011 - 21 janv. 2011 à 13:52
Bonjour,

Je suis en javascript.
Comment fait-on pour récupérer la date du jour, la comparer à la date d'un article que j'ai en BDD et dire si la date de cet article est inférieure à 7 jours, tu le lit, sinon, tu met la date du jour dans le champ de formulaire.

En gros, je voudrais :

var jourJ = new Date(yyyy/mm/dd); //récupérer la date du jour
if (date_fin <= jourJ-7) //date_fin de mon article <= à la date moins 7 jours
{
tu affiches les articles
}

else date_fin > jourJ-7
{
Dans le formulaire, tu force à la date du jour
}

Je ne sais pas si je suis très clair ???
Qui peux m'aider ???

Merci

2 réponses

Zobibol Messages postés 469 Date d'inscription mercredi 9 janvier 2002 Statut Membre Dernière intervention 20 février 2017 6
21 janv. 2011 à 13:16
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 )

<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>




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]
0
cdoliv Messages postés 4 Date d'inscription jeudi 21 octobre 2010 Statut Membre Dernière intervention 21 janvier 2011
21 janv. 2011 à 13:52
Merci pour ta réponse.
Elle m'aide pour le getNbDaysBetween que je ne connaissais pas, mais ensuite, je bloque même dans le if !!!
Je suis grand grand débutant
Peux-tu m'en dire plus sachant que c'est un formulaire de recherche d'articles ???
0
Rejoignez-nous