PHP: Função para validar data

Compartilho com você, caro leitor, uma função para validar data no padrão brasileiro (dd/mm/yyyy).

Aonde usar esta função? Em formulários que possuem campo, como data de aniversário etc.

header('Content-Type: text/html; charset=utf-8');
 
function ValidaData($data){
    // data é menor que 8
    if ( strlen($data) < 8){
        return false;
    }else{
        // verifica se a data possui
        // a barra (/) de separação
        if(strpos($data, "/") !== FALSE){
            //
            $partes = explode("/", $data);
            // pega o dia da data
            $dia = $partes[0];
            // pega o mês da data
            $mes = $partes[1];
            // prevenindo Notice: Undefined offset: 2
            // caso informe data com uma única barra (/)
            $ano = isset($partes[2]) ? $partes[2] : 0;
 
            if (strlen($ano) < 4) {
                return false;
            } else {
                // verifica se a data é válida
                if (checkdate($mes, $dia, $ano)) {
                     return true;
                } else {
                     return false;
                }
            }
        }else{
            return false;
        }
    }
}
 
//boolean false
$data = "32/12/2016"; // dia inválido 
$data = "31/15/2016"; // mês inválido
$data = "31/12/0000"; // ano inválido
$data = "31122016"; // não contém barras
$data = "31/122016"; // somente uma barra
$data = "31/12/1"; // menor que 8 caracteres
 
//boolean true
$data = "31/12/2016"; 
$data = "31/12/16";
 
if(ValidaData($data)){
    echo "Data válida!";
}else{
    echo "Data inválida!";
}

Se você tem uma outra forma de validar, deixe nos comentários.

Até +!

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *