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