Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

felipefcruz

Comparação de datas

Recommended Posts

Bom dia, pessoal,

 

Tenho uma dúvida... Tenho um campo text Data de Nascimento, com máscara tudo bonitinho, mas o problema é o seguinte: Me dei conta que quando usuário faz um cadastro mesmo com o nome ao lado "DATA DE NASCIMENTO", ele geralmente coloca a data atual. Vocês poderiam me ajudar a fazer uma comparação entre a data atual do sistema e da data digitada, para gerar uma mensagem e não deixar cadastrar.

Esperando resoluções, obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

vamos ver se eu entendi o que você quer, kkkk

<script>
function todioio(data){
	if (data==new Date().toLocaleString().split(" ")[0]){
		document.getElementById("botao_salvar").disabled='disabled'
		alert('Muda a data de nascimento ai fí')
	}else{
		document.getElementById("botao_salvar").disabled=false
	}
}
</script>
<form id="form1" name="form1" method="post" action="">
	<input name="nascimento" id="nascimento" type="text" onkeyup="todioio(this.value);" />
  <input type="submit" name="botao_salvar" id="botao_salvar" value="Submit" />
</form>

Compartilhar este post


Link para o post
Compartilhar em outros sites

kkkkkkkkkkkkkkkkkkkkkkkkkkkkk gostei do bom humor. Vou testar e já informo se deu certo...

Compartilhar este post


Link para o post
Compartilhar em outros sites

este exemplo é bem didático:

 

<html>  
<head>  
<script language="javascript">  
    function clickMe()  
    {  
        var dataForm = (document.forms[0]["datanasc"].value).split("/");  
        var hoje = new Date();  
        var dataInformada = new Date(dataForm[2], dataForm[1]-1, dataForm[0]);  
          
        if ( hoje < dataInformada )  
        {  
            alert("Hoje [" + hoje + "] é ANTERIOR a data informada! [" + dataInformada + "]");  
        }  
        else if ( hoje.getDate() == dataInformada.getDate() )  
        {  
            alert("Hoje [" + hoje + "] é A MESMA DATA que a data informada! [" + dataInformada + "]");  
        }  
        else  
        {  
            alert("Hoje [" + hoje + "] é POSTERIOR a data informada! [" + dataInformada + "]");  
        }  
    }  
</script>  
</head>  
<body>  
<form>  
<input type="text" name="datanasc" id="datanasc" value="10/05/1976">  
<input type="button" onClick="clickMe()" value="click me">  
</form>  
</body>  
</html> 

Compartilhar este post


Link para o post
Compartilhar em outros sites

A data é um text box com mascara __/__/____, ele não está fazendo a relação com o script de vcs, está passando direto...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vou ponhá...

 

<script language="javascript" type="text/javascript">
function travar(data){
	if (data==new Date().toLocaleString().split(" ")[0]){
		document.getElementById("form").disabled='disabled'
		alert('Data de nascimento inválida!')
	}else{
		document.getElementById("form").disabled=false
	}
}
</script>

<input name="datanascimento" type="text" id="datanascimento" size="35" tabindex="4" class="auto-style50" onkeyup="travar(this.value);"  maxlength="9">	

Compartilhar este post


Link para o post
Compartilhar em outros sites

vc pode recuperar o valor, jogar numa variável e depois comparar no js

Compartilhar este post


Link para o post
Compartilhar em outros sites

Humberto,

 

Pelo o que eu entendi no seu exemplo, esse <botao_salvar> seria o nome do button, que no meu caso é form..

Compartilhar este post


Link para o post
Compartilhar em outros sites
function formatar(src, mask) {

var i = src.value.length;
var saida = mask.substring(0,1);
var texto = mask.substring(i)

if (texto.substring(0,1) != saida) {

src.value += texto.substring(0,1);
}

}

function Compara_Datas(data_inicial, data_final){

//Verifica se a data inicial é maior que a data final
str_data_inicial = data_inicial;
str_data_final = data_final;
dia_inicial = data_inicial.substr(0,2);
dia_final = data_final.substr(0,2);
mes_inicial = data_inicial.substr(3,2);
mes_final = data_final.substr(3,2);
ano_inicial = data_inicial.substr(6,4);
ano_final = data_final.substr(6,4);

if(ano_inicial > ano_final){
alert("A data final deve ser maior que a data inicial!");
data_final.focus();
return false
} else {
if(ano_inicial == ano_final){
if(mes_inicial > mes_final){
alert("A data final deve ser maior que a data inicial!");
data_final.focus();
return false
} else {
if(mes_inicial == mes_final){
if(dia_inicial > dia_final){
alert("A data final deve ser maior que a data inicial!");
data_final.focus();
return false
}
}
}
}
}
}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mal ficar uns dias fora, feriadão, "páh"...

 

xanburzum, poderia me explicar o Compara_Datas? Por favor...

Compartilhar este post


Link para o post
Compartilhar em outros sites

ele verifica se a data inicial é maior que a data final, e no laço de comparação (if), onde comparamos com o valor setado acima no substr, que é para selecionar parte de uma string:

 

substr:

 

substr(índice_inicial,índice_final)

 

e depois exibir a mensagem de acordo com o resultado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

jogue o nome do campo dentro da função

Compartilhar este post


Link para o post
Compartilhar em outros sites


É isso?

 

<script type="text/javascript">

function formatar(src, mask) {

 

var i = src.value.length;

var saida = mask.substring(0,1);

var texto = mask.substring(i)

 

if (texto.substring(0,1) != saida) {

 

src.value += texto.substring(0,1);

}

 

}

function Compara_Datas(data_inicial, datanascimento){

 

//Verifica se a data inicial é maior que a data final

str_data_inicial = data_inicial;

str_data_final = datanascimento;

dia_inicial = data_inicial.substr(0,2);

dia_final = datanascimento.substr(0, 2);

mes_inicial = data_inicial.substr(3,2);

mes_final = datanascimento.substr(3, 2);

ano_inicial = data_inicial.substr(6,4);

ano_final = datanascimento.substr(6, 4);

 

if(ano_inicial > ano_final){

alert("A data final deve ser maior que a data inicial!");

datanascimento.focus();

return false;

} else {

if(ano_inicial == ano_final){

if(mes_inicial > mes_final){

alert("A data final deve ser maior que a data inicial!");

datanascimento.focus();

return false;

} else {

if(mes_inicial == mes_final){

if(dia_inicial > dia_final){

alert("A data final deve ser maior que a data inicial!");

datanascimento.focus();

return false;

}

}

}

}

}

}

</script>

 

<input name="datanascimento" type="text" id="datanascimento" size="35" tabindex="4" class="auto-style50" maxlength="10">

Compartilhar este post


Link para o post
Compartilhar em outros sites

tire ele da função e uso o code normalmente, atribuindo as variáveis.

 

var i = src.value.length;
    var saida = mask.substring(0,1);
    var texto = mask.substring(i)

    if (texto.substring(0,1) != saida) {

    src.value += texto.substring(0,1);
}

}
    function Compara_Datas(data_inicial, datanascimento){

    //Verifica se a data inicial é maior que a data final
    str_data_inicial = data_inicial;
    str_data_final = datanascimento;
    dia_inicial = data_inicial.substr(0,2);
    dia_final = datanascimento.substr(0, 2);
    mes_inicial = data_inicial.substr(3,2);
    mes_final = datanascimento.substr(3, 2);
    ano_inicial = data_inicial.substr(6,4);
    ano_final = datanascimento.substr(6, 4);

    if(ano_inicial > ano_final){
    alert("A data final deve ser maior que a data inicial!");
    datanascimento.focus();
    return false;
    } else {
    if(ano_inicial == ano_final){
    if(mes_inicial > mes_final){
    alert("A data final deve ser maior que a data inicial!");
    datanascimento.focus();
    return false;
    } else {
    if(mes_inicial == mes_final){
    if(dia_inicial > dia_final){
    alert("A data final deve ser maior que a data inicial!");
    datanascimento.focus();
    return false;
}
}
}
}
}
}
</script>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara eu coloquei assim:

 

<script type="text/javascript">

    var i = src.value.length;
    var saida = mask.substring(0,1);
    var texto = mask.substring(i)

    if (texto.substring(0,1) != saida) {

    src.value += texto.substring(0,1);
}

    function Compara_Datas(data_inicial, datanascimento){

    //Verifica se a data inicial é maior que a data final
    str_data_inicial = data_inicial;
    str_data_final = datanascimento;
    dia_inicial = data_inicial.substr(0,2);
    dia_final = datanascimento.substr(0, 2);
    mes_inicial = data_inicial.substr(3,2);
    mes_final = datanascimento.substr(3, 2);
    ano_inicial = data_inicial.substr(6,4);
    ano_final = datanascimento.substr(6, 4);

    if(ano_inicial > ano_final){
    alert("A data final deve ser maior que a data inicial!");
    datanascimento.focus();
    return false;
    } else {
    if(ano_inicial == ano_final){
    if(mes_inicial > mes_final){
    alert("A data final deve ser maior que a data inicial!");
    datanascimento.focus();
    return false;
    } else {
    if(mes_inicial == mes_final){
    if(dia_inicial > dia_final){
    alert("A data final deve ser maior que a data inicial!");
    datanascimento.focus();
    return false;
}
}
}
}
}
}
</script>

Mas tá passando direto...

A única função relacionada a data:

<script type="text/javascript">
        $(document).ready(function () {
var datanascimento = $("input[name='datanascimento']");

 $("#datanascimento").mask("99/99/9999");

}

</script>

Compartilhar este post


Link para o post
Compartilhar em outros sites

mude as variáveis para pegar seu input

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.