나는 정말 바보 같은 것을 놓치고 있다고 생각하기에 너무 무감각 해 보이는 문제가 있습니다.자바 스크립트로 잘못된 날짜가 생성되었습니다.
이function validateDate(date){
var re = /\b\d{1,2}[\/-]\d{1,2}[\/-]\d{4}\b/;
if(!re.test(date))
return false;
var separator = (date.indexOf("/") != -1) ? "/" : "-";
var aux = date.split(separator);
var day = parseInt(aux[0]);
var month = parseInt(aux[1]);
var year = parseInt(aux[2]);
alert(aux[0]+" "+aux[1]+" "+aux[2]);
var dateTest = new Date(year,month-1,day);
alert(dateTest); //2nd alert
if(dateTest.getDate() != day)
return false;
if(dateTest.getMonth()+1!= month)
return false;
if(dateTest.getFullYear() != year)
return false;
return true;
}
첫 번째 경고가 항상 정확한 값을 보여줍니다 나는 날짜의 유효성을 검사하는 다음과 같은 자바 스크립트 기능을 가지고있다. 수신 날짜가 예를 들어 05/07/2011
인 경우 모든 것이 정상적으로 작동합니다. 두 번째 경고는 "Tue Jul 5 00:00:00 UTC+0200 2011"
이 옳다는 것을 보여줍니다. 하지만 지금은 8 월 또는 9 월 날짜 월을 변경하면 만든 날짜가 잘못되었습니다. 예를 들어, 날짜가 인 경우 두 번째 경고는 "Sun Dec 5 00:00:00 UTC+0100 2010"
으로 표시됩니다.
누구나 무슨 일이 일어날 지 알고 있습니까 ??
어디에서 날짜를 가져 왔습니까? 사용자 입력입니까? 그것 파일인가? 사용자 입력 인 경우 날짜 위젯을 사용하는 것이 더 좋지 않습니까? – T9b