比较两个日期时出现“Zend_Locale_Exception”异常

时间:2013-09-09 15:00:48

标签: php zend-framework zend-form

我正在尝试验证表单,表单接受两个日期并进行比较。以下是用于验证以验证两个日期的函数。

 public function isValid($data) {
        if ($isValid = parent::isValid($data)) {
            $checkin = new Zend_Date($data['checkin'], null, 'en_US');
            $checkout = new Zend_Date($data['checkout'], null, 'en_US');

            if ($checkin->isLater($checkout)) {
                 $this->checkin->addError('Dates are incorrect');
            }

            if ($checkout->isEarlier($checkin)) {
                 $this->checkin->addError('Dates are incorrect');
            }


        }
        return $isValid;
    }

运行此操作时,我收到错误消息

500 Application error
exception 'Zend_Locale_Exception' with message 'No date part in 'Select Date' found.'

当我死(); $ isValid变量将其设置为1(true)所以我知道它变得那么远。

$ checkin& $ checkout变量由于某种原因未填充。

$ data变量确实有一个数组存在,所以我知道它从表单中提取一些数据。 下面是var_dump();对于$ data变量:

array(12) { ["controller"]=> string(7) "booking" ["action"]=> string(6) "search" ["module"]=> string(7) "default" ["checkin"]=> string(11) "Select Date" ["checkout"]=> string(11) "Select Date" ["district"]=> string(1) "0" ["adults"]=> string(1) "1" ["children"]=> string(1) "0" ["quantity"]=> string(1) "1" ["findroom"]=> string(1) "1" ["x"]=> string(3) "151" ["y"]=> string(2) "29" } 

1 个答案:

答案 0 :(得分:0)

我解决了这个问题,问题是它试图将字符串验证为日期,我只是将今天的日期添加为默认值并且它完美运行!