Bom dia pessoal!

Venho trazer esta dica muito útil.
As vezes devemos fazer a validação no lado do cliente, para que, caso algum dado informado esteja errado, deverá mostrar antes de submeter os dados para o server e lá fazer a validação.
Então fiquem com a dica abaixo: Como verificar se uma data é válida através do Javascript

Primeiro nós criamos a função para utilizar em qualquer parte que for preciso e passamos como parâmetro o elemento (input) que será analisado

function ValidaData(obj)
{
    var data = obj.value;
    var dia = data.substring(0,2);
    var mes = data.substring(3,5);
    var ano = data.substring(6,10);

Como perceberam, eu pego o atributo value do elemento, exemplo:

var obj = document.getElementById('data');

Então eu separo o dia mês e ano (No formato brasileiro dd/mm/aaaa) e coloco em cada variável, como mostrado ali em cima.
Ok! Logo em seguida crio um objeto Date usando os valores do ano, mês e dia.

//Criando um objeto Date usando os valores ano, mes e dia.
    var novaData = new Date(ano,(mes-1),dia);

Logo após eu faço uma atribuição com condicional. Transformo meu dia e vejo se ele é um dia válido para o mês e ano do objeto criado
Faço isso também com mês e ano. Caso a atribuição falhe, as variáveis receberam o valor false… código abaixo:

var mesmoDia = parseInt(dia,10) == parseInt(novaData.getDate());
var mesmoMes = parseInt(mes,10) == parseInt(novaData.getMonth())+1;
var mesmoAno = parseInt(ano) == parseInt(novaData.getFullYear());

O resto da função eu apenas verifico se as variáveis mesmoDia, mesmoMes e mesmoAno são de valor false. Se sim então a data é inválida!

    if (!((mesmoDia) && (mesmoMes) && (mesmoAno)))
    {
        return false;
    } 
    //Se a data for válida então retorna true
    return true;
}

E pronto!

Beleza né? Tranquilo!
Caso queira baixar o arquivo do código segue link.

Código

Um grande abraço e até mais!

  • floopz

    Até que enfim uma função que valida direito. A maioria nem serve pra nada não verifica a data só a quantidade de números, realmente muito boa. Parabéns!

    • Guilherme Pedrazzi

      Obrigado pelo comentário 🙂 Estamos começando agora com o blog. Se encontrar algum conteúdo útil compartilhe com amigos !