2012-01-03 28 views
5

Dzień dobry w mojej strefie czasowej.Porównaj dzień miesiąca i rok

Chcę porównać dwie daty, jedna z nich jest wstawiana przez użytkownika, a druga to dzień dzisiejszy. Fragment kodu:

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

ta zwraca prawdę, myślę, że pod maską obu Data obiekty są przekształcane do milisekund, a następnie w porównaniu, a jeśli jest to droga „Dzisiaj” obiekt jest większy ze względu na godziny i minuty .To co chcę zrobić, to porównać daty tylko przez miesiąc i rok. Jakie jest najlepsze podejście? Utworzyć nowy obiekt Date, a następnie zresetować godziny minut i milisekund na zero przed porównaniem? Lub wyodrębnić dzień w miesiąc i rok z obu dat obiektu i dokonać porównania? Czy istnieje lepsze podejście?

Z góry dzięki Z pozdrowieniami. Szczęśliwego Nowego Roku

+0

Więcej informacji na temat dat konwersji może znaleźć na: - http://stackoverflow.com/questions/492994/compare-two-dates-with-javascript –

Odpowiedz

0

Ponieważ jest to w formacie rrrr-mm-dd, można po prostu zbudować aktualną yyyy-MM-DD od daty obiektu i robić regularne porównania wyrażenie:

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); 
Powiązane problemy