2015-02-03 1 views
0

그래서 웹 양식에 입력 한 날짜가 제출하기 전에 과거에 없었는지 확인하는 데 사용하는 checkDate() 기능이 있습니다. 문제는이 함수가 입력 한 날짜가 오늘 날짜 인 경우에도 오류를 반환한다는 것입니다. 나는 이것이 날짜/시간 : MM : YYYY HH : MM : SS.sss로 형식화 된 다음 에포크 값으로 변환되는 방법과 관련이 있다고 가정하고 있지만, 입력 된 날짜의 유효성을 검사하는 방법을 알지 못합니다. 아직 과거 날짜가 아닌지 확인하면서 오늘은 안됩니다.오늘 날짜를 포함하지 않고 과거 날짜가 아닌지 어떻게 확인할 수 있습니까?

주의 사항 : 우리가 txtNeededBy라는 이름에 대해 확인 된 날짜 문자열을 텍스트 상자

나는 아래 전체가 내 checkDate() 기능을 게시했습니다.

function checkDate() { 

    var date = new Date($("#txtNeededBy").val()); 
    ValidateDate = false; 

    if (Date.parse(date) < Date.now()) { 
     sb.append("<li>Needed by date must not be in the past.</li>"); 
     $("#txtNeededBy").addClass("input_error"); 
     ValidateDate = true; 
     if (sb.toString().length > 0) { 
      $(".Errors").html(sb.toString()); 
      $(".Errors").show(); 
      return false; 
     } 
    } else { 
     $("#txtNeededBy").removeClass("input_error"); 
    } 

    if (ValidateDate === true) { 
     return false; 
    } 
} 
+0

복제본 http://stackoverflow.com/questions/2698725/comparing-date-part-only-without-comparing-time-in-javascript – ChrisV

+0

사이드 노트에서 : 코드 끝에서'=== true'는 필요 없습니다. if 문은 조건이 true 일 때만 실행됩니다. 부울 변수 (true/false)를 가지고 있다면, 값이'=== true'인지 확인할 필요가 없습니다. 실제로하는 일은 실제로'if (true === true)'입니다. 'true === true'는 true를 반환합니다. 이는 처음에 수표를 버릴 수 있음을 의미합니다. 또한'var' 키워드없이'ValidateDate'를 선언하는 이유는 무엇입니까? –

+0

ChrisV가 게시 한 답변을 시도 할 것입니다. ValidateDate 변수의 경우 다른 곳에서 선언 된 전역 변수이며이를 제외하면 나쁘다. –

답변

0

이 난 강력하게 그 라이브러리는 매우 쉽게 비교 이러한 종류의 작업을 수행 할 수있는 됐나() 메소드가 Date.js

같은 라이브러리를 사용하는 것이 좋습니다. 바퀴를 재발 명하지 마십시오.

관련 문제