2012-03-30 4 views
4

경우 내가 사용하여 선택한 날짜가 과거에 있는지 확인 할 수 있어요 :JQuery와 날짜 선택기 : 선택한 날짜가 오늘 날짜

var due_date = $('#due_date').val(); 
if(new Date(due_date).getTime() < new Date().getTime()) 
{ 
    //do stuff 
} 

이 ^이 내가 결정하기 위해 다음과 같은 사용하고 미세

를 작동 선택한 날짜가 오늘 날짜 인 경우 :

var due_date = $('#due_date').val(); 
var today = new Date().getTime(); 
if(new Date(due_date).getTime() == today) 
{ 
    alert('ok'); 
} 

하지만 경고는 발생하지 않습니다. 위의 진술에 무엇이 잘못 되었습니까?

답변

2

2012 년 3 월 30 일 자정을 나타내는 Date 개체가 만들어지는 문자열 인 "30/03/2012"문자열. new Date()에 전화하면 현재 시간을 나타내는 Date 개체가 만들어집니다 (초 및 밀리 초 포함).

setHours(), setMinutes() 등의 함수를 사용하여 정확한 시간을 나타낼 수 있도록 Date 객체의시, 분, 초 및 밀리 초 속성을 0으로 설정해야합니다.

Date 개체에 대한 자세한 내용은 MDN entry을 참조하십시오.

2

사과와 사과를 비교해야합니다.

jQuery를 : 여기에 확인하는 쉬운 방법이다

$('#dp').datepicker({ 
    onSelect: function(dateText) { 
     var today = new Date(new Date().getFullYear(), new Date().getMonth(), new Date().getDate()).getTime(); 
     var selected = new Date(dateText).getTime(); 
     if (today > selected) alert('prior to today'); 
     else if (today < selected) alert('after today'); 
     else alert('today'); 
    } 
});​ 

jsFiddle example.

7

datepicker 객체에는 새로운 날짜()와 비교하기 위해 날짜 값을 반환하는 getDate 메서드가 있습니다. 새로운 날짜에 마사지를 좀 더해야하지만, 원하는 것을 얻을 수 있습니다.

JsFiddle Example

HTML :

Date: <input type="text" id="thedate"/> 
<div id="checkDate">Check Date</div> 

JS :

$('#thedate').datepicker(); 

$('#checkDate').bind('click', function() { 
    var selectedDate = $('#thedate').datepicker('getDate'); 
    var today = new Date(); 
    today.setHours(0); 
    today.setMinutes(0); 
    today.setSeconds(0); 
    if (Date.parse(today) == Date.parse(selectedDate)) { 
    alert('today!'); 
    } else { 
    alert('not today'); 
    } 
});