2012-01-03 53 views
5

Chào buổi chiều trong múi giờ của tôi.So sánh ngày và tháng

Tôi muốn so sánh hai ngày, một trong số đó được chèn bởi người dùng và một ngày khác là ngày hiện tại. Đoạn mã:

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

này trả về true, tôi nghĩ rằng dưới mui xe cả hai đối tượng ngày được chuyển đến mili giây và sau đó so sánh, và nếu nó là cách này "Hôm nay" đối tượng lớn vì số giờ và phút .Vì những gì tôi muốn làm là so sánh ngày tháng chỉ bằng ngày tháng và năm. Cách tiếp cận tốt nhất là gì? Tạo đối tượng Date mới và sau đó đặt lại giờ phút và mili giây về 0 trước khi so sánh? Hoặc trích xuất ngày tháng và năm từ cả hai ngày đối tượng và thực hiện so sánh? Có cách tiếp cận nào tốt hơn không?

Cảm ơn trước Trân trọng. Chúc mừng năm mới

+0

Thông tin thêm về chuyển đổi ngày có thể được tìm thấy tại: - http://stackoverflow.com/questions/492994/compare-two-dates-with-javascript –

Trả lời

14

Đặt phần thời gian của bạn được tạo date to zeros.

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

Giải pháp hoàn hảo – tt0686

0

Vì nó ở định dạng yyyy-mm-dd, bạn chỉ có thể xây dựng các yyyy-mm-dd hiện từ đối tượng ngày và làm một so sánh chuỗi thường xuyên:

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