Чтобы добавить к ответу Ноя, Zend_Validate_Date
действительно ужасен и негибок; то есть, если вы хотите иметь более щадящую политику для ввода даты.
Теперь, если ZF поставляется с Zend_Filter_Date
, который нормализует различные тривиальные (хотя и очень разборчивые) форматы селекторов даты / источников ввода пользователя, это может быть другая история, поскольку вы можете отфильтровать дату в нормализованном формате, тогда подтвердите это, что это в том формате. Но это не так.
Несмотря ни на что, есть много вменяемых решений этой проблемы. Вероятно, самый простой из которых это:
$validator = new \Zend_Validate_Callback(function($value) {
return (bool)strtotime($value);
});
Лично мне все равно, будет ли дата / дата показываться в формате гггг / мм / дд, 23 сентября 2012 г. или как «-2 недели» - все, что меня действительно волнует, это умный ли strtotime достаточно, чтобы разобрать его.