我正在尝试验证表单,该表单接受两个日期并进行比较。下面是用于验证两个日期的函数。
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" }