2012-01-12 8 views
5

Zend_Validate_Date sadece düzgün çalışmıyor. Örneğin:Zend_Validate_Date düzgün çalışmıyor

Bu yalnızca dört basamaklı bir yıl kabul etmelidir basit doğrulayıcı olduğunu
$validator = new Zend_Validate_Date(array('format' => 'yyyy')); 

, henüz gerçek $validator->isValid('1/2/3') döner! Gerçekten Zend? Bu konuda

Veya nasıl: Hatta yukarıdaki kod ile

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

, $otherValidator->isValid('15/13/10/12/1222') döner true de!

Zend Framework 1.11.9 kullanıyorum. Sadece ben mi yoksa bu gerçekten berbat bir doğrulama sınıfı mı? (GÜNCELLEME: Başka bir deyişle, kodumda bir sorun var mı, yoksa gönderilmesi gereken bir hata mı?)

+0

Soru nedir? Onun korkunç bir doğrulama sınıfı olsun? – thetaiko

+2

Sadece sen değil, sorunları var [zf-7583] (http://framework.zend.com/issues/browse/ZF-7583) [zf-10030] (http://framework.zend.com/issues/ browse/ZF-10030) – drew010

+0

@thetaiko Gönderiimin sonunda UPDATE konusuna bakın. – fronzee

cevap

6

Yukarıdaki yorumların da belirttiği gibi, görünüşe göre bu sınıfta bir hata var.

$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 
); 

Umarım başkası yardımcı olacaktır: İşte, Zend_Validate_Regex kullanarak ile geldi çözümdür. Lütfen sadece eğik çizgileri ayırıcı, nokta ya da tire değil olarak görüyorum.