2012-01-03 11 views
5

Bon après-midi dans mon fuseau horaire.Comparer jour mois et année

Je veux comparer deux dates, l'une d'elles est insérée par l'utilisateur et l'autre est le jour présent. Snippet de code:

var dateString = "2012-01-03" 
    var date = new Date(dateString); 
    date < new Date() ? true : false; 

Cela retourne vrai, je pense que sous le capot les deux objets de date sont transformées en millisecondes, puis comparé, et si elle est ainsi l'objet « Aujourd'hui » est plus grande en raison des heures et des minutes Donc, ce que je veux faire est de comparer les dates juste le jour du mois et de l'année.Quelle est la meilleure approche? Créer un nouvel objet Date, puis réinitialiser les heures minutes et 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? Merci d'avance Avec les meilleures salutations. Bonne année

+0

Plus d'informations sur la conversion de la date peut être trouvé à: - http://stackoverflow.com/questions/492994/compare-two-dates-with-javascript –

Répondre

14

Définissez la partie de temps de votre création date to zeros.

var d = new Date(); 
d.setHours(0,0,0,0); 
+1

Solution parfaite – tt0686

0

Comme il est au format aaaa-mm-dd, vous pouvez simplement construire le courant aaaa-mm-jj de l'objet de la date et faire une comparaison de chaîne régulière:

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); 
Questions connexes