日期验证器,使用 Zend Framework 验证日期是否大于或等于今天

2024-04-19

$form = new Zend_Form();

$mockDate = new Zend_Form_Element_Text('mock');

$mockDate->addValidator(???????);

$form->addElements(array($mockDate));

$result = $form->isValid();

if ($result) echo "YES!!!";
else echo "NO!!!";

假设该元素采用日期格式。如何确定给定的日期大于或等于今天?


您可以创建一个简单的验证器来执行此操作:

class My_Validate_DateGreaterThanToday extends Zend_Validate_Abstract
{
    const DATE_INVALID = 'dateInvalid';

    protected $_messageTemplates = array(
        self::DATE_INVALID => "'%value%' is not greater than or equal today"
    );

    public function isValid($value)
    {
        $this->_setValue($value);

        $today = date('Y-m-d');

        // expecting $value to be YYYY-MM-DD
        if ($value < $today) {
            $this->_error(self::DATE_INVALID);
            return false;
        }

        return true;
    }
}

并将其添加到元素中:

$mockDate->addValidator(new My_Validate_DateGreaterThanToday());

您可能想检查日期Zend_Date http://framework.zend.com/manual/en/zend.date.html用于日期本地化和进一步的好处。

要创建自定义验证,请查看编写验证器 http://framework.zend.com/manual/en/zend.validate.writing_validators.html来自 Zend 的手册。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

日期验证器,使用 Zend Framework 验证日期是否大于或等于今天 的相关文章

随机推荐