在我的应用程序库中,我有输入过滤器,它使用Zend_Form(ZF 1。*)
class My_InputFilter extends Zend_Form
{
public function init()
{
$this->addElement(
'text', 'dateFrom', array(
'required' => true,
'filters' => array(
'dateTimeTotimeStamp'
),
'validators' => array(
array('date', false, array('format' => 'Y-m-d H:i:s'))
)
)
);
}
}
然后在我的应用程序中,我希望以时间戳格式获取经过验证的数据:
$inputFilter = new My_InputFilter();
if (!$inputFilter->isValid($criteria)) {
throw new InvalidArgumentException(
$this->simplifyInputFilterErrorMessages($inputFilter->getMessages())
);
} else {
$validatedCriteria = $inputFilter->getValues(); // Array with my timestamp date
}
在哪里实现'dateTimeTotimeStamp'(示例名称)strtotime()过滤器以获取UNIX时间戳格式的验证和过滤日期?
答案 0 :(得分:3)
如果您不想使用Zend_Filter_Callback
创建单独的过滤器示例:
$this->addElement($this
->createElement('text', 'dateFrom')
->addFilter(new Zend_Filter_Callback(function($value){
return strtotime($value);
})));
在验证期间以及通过getValue()检索元素值时都会发生过滤: