2012-01-03 27 views
5

Buon pomeriggio nel mio fuso orario.Confronta mese mese e anno

Desidero confrontare due date, una delle quali è inserita dall'utente e l'altra è quella attuale. Frammento di codice:

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

Ciò restituisce vero, penso che sotto il cofano due oggetti Date si trasformano in millisecondi e poi confrontati, e se è in questo modo l'oggetto "Oggi" è più grande a causa delle ore e minuti Quindi, quello che voglio fare è confrontare le date solo per il mese e l'anno del giorno. Qual è l'approccio migliore? Creare un nuovo oggetto Date e quindi reimpostare le ore minuti e millisecondi a zero prima del confronto? O estrarre il giorno il mese e l'anno da entrambe le date oggetto e effettuare il confronto? C'è un approccio migliore?

Grazie in anticipo Con i migliori saluti. Felice anno nuovo

+0

Maggiori informazioni sulla conversione della data può essere trovato a: - http://stackoverflow.com/questions/492994/compare-two-dates-with-javascript –

risposta

14

Imposta la porzione di tempo del tuo date to zeros creato.

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

soluzione perfetta – tt0686

0

Dal momento che è nel formato AAAA-MM-GG, si può semplicemente costruire l'attuale aaaa-mm-gg dalla data di oggetto e fare un regolare confronto tra stringhe:

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); 
Problemi correlati