看来Zend_Validate_Date根本无法正常工作。例如:

$validator = new Zend_Validate_Date(array('format' => 'yyyy'));

这是一个简单的验证器,只能接受四位​​数的年份,但是$validator->isValid('1/2/3')返回true!真的,Zend?

还是这样:
$otherValidator = new Zend_Validate_Date(array('format' => 'mm/dd/yyyy'));

即使使用上面的代码,$otherValidator->isValid('15/13/10/12/1222')也会返回true!

我正在使用Zend Framework 1.11.9。是我还是这真是可怕的验证类(class)? (更新:换句话说,我的代码是否有问题,还是应该提交的错误?)

最佳答案

正如上面的评论所说,此类显然存在一个错误。这是我使用Zend_Validate_Regex提出的解决方法:

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

希望这会对别人有所帮助。请注意,我只希望斜杠作为分隔符,而不是点或破折号。

关于php - Zend_Validate_Date不能正常工作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8839489/

10-12 06:54