Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjour,
j'ai un formulaire dans lequel j'ai un champ texte qui doit recevoir une date.
Pour vérifier que l'utilisateur saisisse une date dans un format valide (dd/mm/YYYY), j'ai créé un validateur que j'ai ensuite ajouté au champ date.
Voici mon code :
$dateValidator = new Zend_Validate_Date('dd/mm/YYYY'); $dateValidator->setMessage('Format de date incorrect'); ... $dateNaiss = new Zend_Form_Element_Text('dateNaiss'); $dateNaiss->setLabel('Date naissance') ->addValidator($dateValidator);
Mon soucis est que lorsque je rentre par exemple 12345 et que je submit mon formulaire, je n'ai pas d'erreur sur la date saisie.
Voyez-vous d'où peut venir le problème ?
Merci d'avance.
Dernière modification par Godzinho (08-02-2010 13:19:00)
Hors ligne
Bonjour à tous,
j'ai réussi à écrire mon validateur de date.
Comme il a été dit dans un autre topic, j'ai repris le code du Zend_Validate_Date et changé les '-' par des '/'.
Il faut simplement faire attention de mettre un '\' devant le '/' dans la regexp car le '/' doit être un caractère spécial des expressions régulières.
Voici mon validateur de date française :
class Appli_Validate_Date extends Zend_Validate_Abstract { public function isValid($value) { if (!preg_match('/^\d{2}\/\d{2}\/\d{4}$/', $value)) { $this->_messages[] = 'Le format de la date doit être JJ/MM/AAAA'; return false; } list($day, $month, $year) = sscanf($value, '%d/%d/%d'); if (!checkdate($month, $day, $year)) { $this->_messages[] = 'Date non valide'; return false; } return true; } }
Hors ligne
Pages: 1