Bon après-midi dans mon fuseau horaire.
Je veux comparer deux dates, l'un d'entre eux est inséré par l'utilisateur et l'autre est le présent. Extrait de code: p> Ceci renvoie true, je pense que sous la capuche Les deux objets de date sont transformés en millisecondes, puis comparés, et si c'est ainsi l'objet "Aujourd'hui". est plus grosse à cause des heures et des minutes. Ce que je veux faire, c'est comparer les dates juste au mois de la journée et année.Quelle est la meilleure approche? Créez un nouvel objet de date, puis réinitialisez les minutes et les millisecondes à zéro avant la comparaison? Ou extraire le jour le mois et l'année des deux dates objet et faire la comparaison? Y a-t-il une meilleure approche? P> Merci d'avance
Avec les meilleures salutations.
Bonne année p> p>
3 Réponses :
Définir la partie TIME de votre Date to Zeros .
var d = new Date(); d.setHours(0,0,0,0);
Solution géniale
Laisser aujourd'hui = nouvelle date (nouvelle date (). Sethours (0, 0, 0, 0)) Code> - Cycles supplémentaires mais une doublure pour la lisibilité.
Étant donné que c'est dans le format AAAA-MM-DD, vous pouvez simplement construire l'objet AAAA-MM-DD actuel à partir d'objet de date et faire une comparaison de chaînes ordinaire:
var currentDate = new Date(); var year = currentDate.getFullYear(); var month = currentDate.getMonth()+1; if (month < 10) month = "0" + month; var day = currentDate.getDate(); if (day < 10) day = "0" + day; currentDate = year + "-" + month + "-" + day; var dateString = "2012-01-03" var compareDates = dateString < currentDate ? true : false; document.write(compareDates);
un exemple de production - prêt à la production basé sur réponse acceptée em> forte> p>
ajoutez la fonction suivante à votre JavaScript P>
date.pototype.removeTimefromdate = fonction () {
var nouvelledate = nouvelle date (this);
NEWDATE.SETHURES (0, 0, 0, 0);
retournedate;
} p> li>
invoquer quand vous souhaitez comparer p>
firstdate.removeTimefromdate ()
Plus d'informations à la date La conversion peut être trouvée à l'adresse suivante: - Stackoverflow. com / questions / 492994 / ...