使用Zend Framework验证日期是否大于或等于今天的日期验证器 [英] Date validator that validates if the date is greater than or equal to today with Zend Framework

查看:104
本文介绍了使用Zend Framework验证日期是否大于或等于今天的日期验证器的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

$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!!!";

假定该元素为日期格式.如何确定给定的日期大于或等于今天?

Assumption that the element is in a date format. How do I determine that the date given is greater than or equal to today?

推荐答案

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

You can create a simple validator to do this:

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 检查日期日期的本地化和进一步的好处.

You probably want to check the date with Zend_Date for localization of dates and further benefits.

要创建自定义验证,请查看编写验证器从Zend的手册中获得.

For creating custom validates, take a look at writing validators from Zend´s manual.

这篇关于使用Zend Framework验证日期是否大于或等于今天的日期验证器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆