2012-01-12 4 views
5

Zend_Validate_Date이 제대로 작동하지 않는 것으로 보입니다. 예를 들면 :Zend_Validate_Date가 제대로 작동하지 않습니다.

이는 네 자리 연도 받아 들여야 간단한 검증이다
$validator = new Zend_Validate_Date(array('format' => 'yyyy')); 

, 아직 진정한 $validator->isValid('1/2/3') 돌아갑니다! 정말, 젠드? 이것에 대해

또는 방법 : 심지어 위의 코드와

$otherValidator = new Zend_Validate_Date(array('format' => 'mm/dd/yyyy')); 

, $otherValidator->isValid('15/13/10/12/1222') 반환 true 너무!

저는 Zend Framework 1.11.9를 사용하고 있습니다. 나만인가, 아니면 정말 끔찍한 검증 클래스인가? (업데이트 : 즉, 내 코드에 문제가 있습니까? 아니면 제출해야하는 버그입니까?)

+0

무엇이 문제입니까? 그 끔찍한 검증 클래스이든간에? – thetaiko

+2

당신뿐만 아니라 그 문제도 있습니다. [zf-7583] (http://framework.zend.com/issues/browse/ZF-7583) [zf-10030] (http://framework.zend.com/issues/ browse/ZF-10030) – drew010

+0

@thetaiko 내 게시물 끝에 업데이트를 참조하십시오. – fronzee

답변

6

위의 설명처럼이 클래스에는 버그가있는 것 같습니다.

$validator = new Zend_Validate_Regex(
    array('pattern' => '/^[0-9]{2}\/[0-9]{2}\/[0-9]{4}$/') 
); 
$validator->setMessage(
    "Date does not match the format 'mm/dd/yyyy'", 
    Zend_Validate_Regex::NOT_MATCH 
); 

바라건대 다른 사람을 도움이 될 것입니다 : 여기, Zend_Validate_Regex를 사용 해낸 해결 방법입니다. 슬래시 만 구분 기호로 사용하고 점이나 대시는 사용하지 마십시오.