2011-12-06 37 views
15

Tôi có một đối tượng ngày trong JavaScript và tôi muốn tìm ra nếu ngày đó là ngày hôm nay. Cách nhanh nhất để làm điều này là gì?Cách tốt nhất để xác định xem ngày tháng có trong JavaScript không?

Mối quan tâm của tôi xung quanh việc so sánh đối tượng ngày là đối tượng có thể có thời gian khác với đối tượng ngày khác nhưng bất kỳ lúc nào trong ngày hôm nay sẽ trả về true.

+4

Tự tiết kiệm thời gian (tải xuống?) Và sử dụng Moment.js: http://momentjs.com/ –

Trả lời

45

Bạn có thể sử dụng toDateString:

var d = new Date() 
var bool = (d.toDateString() === otherDate.toDateString()); 
+0

Cảm ơn bạn @AKX đã sửa lỗi đó. Không biết điều gì đến với tôi: P –

+0

Điều gì xảy ra nếu định dạng của tôi là '01192015'? – SearchForKnowledge

+1

Định dạng @SearchForKnowledge ít quan tâm hơn. Câu hỏi ban đầu cho rằng biến của bạn đang ở định dạng đối tượng ngày javascript để bắt đầu. '01192015' về mặt kỹ thuật là định dạng ngày không hợp lệ (' ngày mới '(' 01192015 ') 'trong giao diện điều khiển trả về" Ngày không hợp lệ ") ít nhất là có liên quan đến javascript. Tuy nhiên, sử dụng tiêu chuẩn '01-19-2015' trả về một đối tượng ngày hợp lệ, mà bạn có thể sử dụng để so sánh với ngày todays bằng cách sử dụng' toDateString() '. –

2

Nếu cả hai đều là Date() đối tượng, bạn có thể sử dụng để 'định dạng' ngày trong một cách mà nó sẽ chỉ so sánh trên năm/tháng/ngày: if(inputDate.setHours(0,0,0,0) == todaysDate.setHours(0,0,0,0));

câu hỏi Gần giống hệt nhau: How to check if input date is equal to today's date?

3
var someDate = new Date("6 Dec 2011").toDateString(); 
var today = new Date().toDateString(); 
var datesAreSame = (today === someDate); 
8

Những câu trả lời dựa trên toDateString() sẽ làm việc tôi nghĩ, nhưng cá nhân tôi sẽ tránh chúng vì họ về cơ bản đặt câu hỏi sai.

Đây là một thực hiện đơn giản:

function areSameDate(d1, d2) { 
    return d1.getFullYear() == d2.getFullYear() 
     && d1.getMonth() == d2.getMonth() 
     && d1.getDate() == d2.getDate(); 
} 

MDN có một cái nhìn tổng quan phong nha của JS ngày đối tượng API nếu đây không phải là khá gì bạn cần.

+2

Vui lòng không liên kết với W3Schools. Họ có [nội dung gây hiểu nhầm và thường xuyên không chính xác] (http://w3fools.com/). Thay vào đó, hãy sử dụng một nguồn có uy tín hơn như [mạng nhà phát triển tuyệt vời của Mozilla] (https://developer.mozilla.org/en-US/) –

+0

Tôi không biết vấn đề với W3Schools. Đã cập nhật liên kết để trỏ đến trang tài liệu MDN có liên quan. – recf

+0

+1 vì tôi nghĩ đây là giải pháp mạnh mẽ hơn so với toDateString. – RobG

Các vấn đề liên quan