Eu vou mostrar aqui duas funções para validar Datas e Horas em formulários utilizando o Codeigniter.
Essas funções devem ser inseridas no final do arquivo "Form_validation.php" que geralmente se encontra em: "/* Location: ./system/libraries/Form_validation.php */"
Segue as funções:
/** * Verifica se a data informada é valida, formato padrão dd/mm/yyyy * caso precise validar em outros formatos adicione nessa função * ex: mm/yyyy, mm/yy, etc * @param string * @return bool */ function valid_date($date, $format = 'dd/mm/yyyy') { $dateArray = explode("/", $date); // slice the date to get the day, month and year separately $d = 0; $m = 0; $y = 0; if (sizeof($dateArray) == 3) { if (is_numeric($dateArray[0])) $d = $dateArray[0]; if (is_numeric($dateArray[1])) $m = $dateArray[1]; if (is_numeric($dateArray[2])) $y = $dateArray[2]; } return checkdate($m, $d, $y) == 1; } // --- // -------------------------------------------------------------------- /** * Verifica se a hora informada é valida, formato padrão HH:ii * caso precise validar em outros formatos adicione nessa função * * @param string * @return bool */ function valid_hour($hour) { if(preg_match("/^([0-1][0-9]|[2][0-3]):[0-5][0-9]$/", $hour)){ return TRUE; }else{ return FALSE; } } // ---
Não se esqueça de adicionar a seguinte linha no arquivo de mensagens de erro de validação de formulários.
//--- $lang['valid_date'] = "O campo %s nao e uma data (dd/mm/yyyy) valida.";
$lang['valid_hour'] = "O campo %s nao e uma hora (hh/mm) valida.";
/* End of file form_validation_lang.php */
/* Location: ./system/language/english/form_validation_lang.php */
Para chamar a validação do formulário em um controller, utilize e seguinte linha:
//---- $this->form_validation->set_rules('data', 'Data', 'required|valid_date'); //---
Duvidas?? Deixe um comentário...
Muito Obrigado, ajudou bastante aqui. vlw
ResponderExcluirestava procurando por isso .. obrigado
ResponderExcluirValeu muito obrigado
ResponderExcluira função (valid_date) e simples verifica apenas se os campo são numéricos isso se faz logo na (view) com javascript uma biblioteca como (data-mask) ajuda nisso alem de deixa o codigo bonito e formatado na view fazer tudo logo de cara ate a validação do meses com 31 dias
ResponderExcluir