JavaScript: Verificar se a data digitada esta correta

Em javascript.

function meses(nome_Campo) {

    uA = document.getElementById(nome_Campo).value;
    var y=0;
    var today=new Date()

    if (uA!='' && uA.length <10) {
        frase = nome_Campo+" - A data esta incompleta";
        y=1;
    }

    dia = (uA.substring(0,2));
    mes = (uA.substring(3,5));
    ano = (uA.substring(6,10));

    myday    = today.getDate();
    mymonth = today.getMonth()+1;
    myyear    = today.getFullYear();

    if (mymonth <=9) mesT = "0"+mymonth;
    else mesT = mymonth;

    if (myday <=9) diaT = "0"+myday;
    else diaT = myday;

    if (dia < 1 && dia !='') {
        alert (nome_Campo+" - O dia não pode ser 0");
        y=1;
    }

    if (mes > 12) {
        alert (nome_Campo+" - O mês não pode ser maior que 12.");
        y=1;
        }

    if (dia && mes) {
        //alert (dia+mes);
        if (!ano) {
            alert (nome_Campo+" - Favor preencher o ANO da data");
            y=1;
            }
        else {   
        if (ano < (myyear-1)) {
                alert (nome_Campo+" - O ano não pode ser menor que "+(myyear-1));
                y=1;
                }
        if (ano > (myyear+1)) {
            alert (nome_Campo+" - O ano não pode ser maior que "+(myyear+1));
            y=1;
            }
        }
    }
    if (((mes =="04") || (mes =="06") || (mes =="09") || (mes =="11")) && (dia >= "31")) {
    alert (nome_Campo+" - O mês escolhido tem 30 dias, favor redigitar a data.");
    y=1;
    }
    if (((mes =="01") || (mes =="03") || (mes =="05") || (mes =="07") || (mes =="08") || (mes =="10") || (mes =="12")) && (dia > "31")) {
    alert (nome_Campo+" - O mês escolhido tem 31 dias, favor redigitar a data.");
    y=1;
    }
    if ((mes =="02") && (dia >= "30")) {
    alert (nome_Campo+" - O mês escolhido tem 29 dias, favor redigitar a data.");
    y=1;
    }

    if (y==1) {
        document.getElementById(nome_Campo).value = "";
        //document.getElementById(nome_Campo).focus();
        }

    }

HTML:
<input type='text' value='' class='preto' name='data1' id='data1' size='10' maxlength='10' onkeyup='formataData(this)' onChange=meses('data1')> - <input type='text' value='' class='preto' name='data2'id='data2' size='10' maxlength='10' onkeyup='formataData(this)' onChange=meses('data2')>

Comentários

Postagens mais visitadas