2011-08-31 4 views
0

사용자가 정보를 입력하는 양식이 있습니다. 날짜에 대한 텍스트 필드에 입력 한 날짜가 mm/dd/yy의 올바른 형식인지 확인하고 싶습니다.사용자 입력, 올바른 날짜 형식인지 확인하십시오.

사용자가 mm/dd/yy 형식으로 입력 한 내용을 확인하고 올바르지 않은 경우 입력 한 날짜가 mm/dd/yy 형식이어야한다는 오류를 표시하십시오.

감사

+2

형식을 확인하는 것은''및/또는 PHP로 클라이언트 측에서 수행 할 수 있습니다. 그리고 유효한 날짜라고 주장하려면'strtotime()'을 사용하고 성공하면 검사하십시오. – mario

답변

0
$date='12/12/2011'; 
$reg="#^(0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])[- /.](19|20)\d\d$#"; 

if (preg_match($reg, $date)) { 
    echo "GOOD date."; 
} else { 
    echo "BAD date."; 
} 
1

나는이 작업을 수행 할 수있는 다른 방법이 있는지 해요,하지만 explode()를 사용하여 분리 문자로 '/'를 사용하여 [희망] 세 가지 항목의 배열로 들어오는 데이터를 분리 .

그런 다음 첫 번째 값이 1..12 범위에 있고 두 번째 값이 1..31 범위에 있고 마지막 값이 0..99 범위에 있는지 확인하십시오.

더 복잡한 점검을하면 매월 적절한 일수가 초과되지 않습니다 (추가 크레딧으로, 연도가 4로 나눌 수있는 경우에만 02를 허용합니다. (예,이 엉망진창 처음 몇 자리가 4로 나눌 수없는 모든 세기에, 그러나 당신은 년 형식을 위해 yy으로 제한했습니다.)).

입력이 너무 짧거나 (1/1/1을 허용하려면 5 자라고) 너무 길거나 (8자를 초과하여) 너무 길면 유효하지 않습니다.

이 아닌은 구분 기호가 필요하며 문자열의 길이가 6 자이고 숫자가 모두 있고 숫자 쌍이 모두 허용 범위 내에 있는지 확인하십시오.

+0

'그냥 문자열이 6 자 길이라는 것을 확인하십시오. '- 확실히 8자를 의미합니까? ... – DaveRandom

+0

@DaveRandom - OP *는 *'mm/dd/yy'의 날짜 형식을 나타 냈습니다 - 그 해는 두 자릿수입니다. – warren

+1

충분히 공정한 것이지 당신의 것이 아닙니다. 세상이 끝나면 우리 모두가 죽는다. 내가 생각하기에 elses가 잘못 생각한 앱 때문에 ...-D – DaveRandom

2

date picker 또는 3 개의 <select>을 사용하면 올바른 날짜 형식을 입력 할 수 있습니다.

+2

아니면 그냥 '그리고 브라우저 나 JS 심은 테 디오 스 부분을 처리합니다. – mario

+0

@mario 깔끔하고, 아직 발견하지 못한 HTML5의 일부가 있습니다. – DaveRandom

+0

@mario holy balls ... –

관련 문제