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é +!