Je valide une chaîne de date saisie par l'utilisateur au format YYYY-MM-DD
en utilisant Zend_Validate::is($value,'Date')
.Validation des chaînes au format YYYY-MM-DD avec Zend_Validate_Date dans les paramètres régionaux en_US
Cet appel crée cette hiérarchie:
Zend_Validate::is()
Zend_Validate_Date->isValid()
Zend_Date::isDate()
Zend_Locale_Format::getDate()
Zend_Locale_Format::_parseDate()
Enfin, il échoue à cette exception:
Zend_Locale_Exception: Unable to parse date '2009-09-08' using 'MMM d, y' (M <> y) in /usr/share/php/Zend/Locale/Format.php on line 1001
J'utilise comme mon en_US locale d'application. Comment puis-je configurer Zend_Validate pour accepter ce format de date? Est-il possible de changer le format de locale de la date, par exemple?
merci beaucoup. Je n'ai jamais utilisé de classe individuelle Zend_Validate_X auparavant. c'est plus personnalisable. – farzad
Vous devriez utiliser ''yyyy-MM-dd'' si ... YYYY est" Année ISO "(qui est subtilement différente au début de l'année) et" DD "jour de l'année pas le jour du mois. http://framework.zend.com/manual/fr/zend.date.constants.html#zend.date.constants.selfdefinedformats.table – gnarf
Si vous avez d'autres valideurs ou un validateur personnalisé sur le même élément, il serait conseillé pour ajouter ce validateur en tant que deuxième (ou dernier) – surfer190