Ir para conteúdo

POWERED BY:

Arquivado

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

Juninho14

Como pegar uma data de um input e diminuí-la pela atual?

Recommended Posts

Bom, tenho uma data deste tipo num campo de input já: "26-12-1996". Daí, queria que quando o usuário preenchesse esse campo, um outro formulado entitulado idade, fosse preenchido automaticamente, alguem sabe como posso fazer isso? Tenho um script que já preenche uma data automatico no campo nascimento.. dai quando isso for preenchido queria q idade fosse auto tb... entende? a função que uso para preencher a data do campo 'data' esta no laboratorio de scripts.. aquele q você clica num botao e abre um calendário completo, ai você clica numa data qualquer e o input recebe a data...

 

[]s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tendo as duas data você pode quebrá-las em seus divisores (como o '-' na data citada), daí você compara com os pedaços da data atual que podem ser obtidos assim:

var dataAtual = new Date();
var mes = dataAtual.getMonth();
var dia = dataAtual.getDay();
var ano = dataAtual.getFullYear();

Compartilhar este post


Link para o post
Compartilhar em outros sites

ta entendi +-.. mas como eu faço para pegar a data que eu peguei de um input (26-01-1986 por exemplo) dividir pela atual e ter a idade da pessoa incluida em um outro input?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acabei de achar esse script em outro fórum na net veja se te ajuda:

 

 

<script>
function CalcIdade(dd,mm,yy)
{
thedate=new Date()
mm2=thedate.getMonth()+1
dd2=thedate.getDate()
yy2=thedate.getYear()
if (yy2<100)
 yy2=yy2+1900;
yourage=yy2-yy;
if (mm2<mm)
 yourage=yourage-1;
if (mm2==mm)
 if (dd2<dd)
   yourage=yourage-1;

agestring=yourage
document.write(agestring)
}
CalcIdade(28,06,1977);
</script>

Compartilhar este post


Link para o post
Compartilhar em outros sites

como eu faço para quando o campo nascimento perder o foco, o campo idade chamar uma determinada funcao, de forma q ele consiga capturar os dados do campo nascimento?

Compartilhar este post


Link para o post
Compartilhar em outros sites

como eu faço para quando o campo nascimento perder o foco, o campo idade chamar uma determinada funcao, de forma q ele consiga capturar os dados do campo nascimento?

 

Amigo ficou meio confusa a sua pergunta poderia explicar melhor? acabei não conseguindo interpretar para lhe responder

Compartilhar este post


Link para o post
Compartilhar em outros sites

bom, eu tenho um input com nome de data, quero que quando ele for preenchido (isso acontece atraves de uma função) o input idade receba a idade da pessoa... só isso hehe.. alguem sabe como?

Compartilhar este post


Link para o post
Compartilhar em outros sites

O evento que é disparado quando o campo perde o foco é o onblur.

Você pode utilizar ele.

Compartilhar este post


Link para o post
Compartilhar em outros sites

tem aquelas paradas de getElementbyId, eu nao entendo mto.. será q alguem pode me ajudar por favor? so falta isso para eu validar meu formulário...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Teste isso:

 

<html>
<body>

<script type="text/javascript">
isDate = function(y, m, d){
		if(typeof y == "string" && m instanceof RegExp && d){
			if(!m.test(y)) return 1;
			y = RegExp["$" + d.y], m = RegExp["$" + d.m], d = RegExp["$" + d.d];
		}
		d = Math.abs(d) || 0, m = Math.abs(m) || 0, y = Math.abs(y) || 0;
		return arguments.length != 3 ? 1 : d < 1 || d > 31 ? 2 : m < 1 || m > 12 ? 3 : /4|6|9|11/.test(m) && d == 31 ? 4
		: m == 2 && (d > ((y = !(y % 4) && (y % 1e2) || !(y % 4e2)) ? 29 : 28)) ? 5 + !!y : 0;
};
	
	calculaIdade = function(x)
	{
		if(isDate(x, /^([0-9]{1,2})[\/]([0-9]{1,2})[\/]([0-9]{1,4})$/, {d: 1, m: 2, y: 3}) == 0)
		{
			var d = new Date();
			var data = new Date();
			data.setHours(0,0,0,0);
			d.setTime(Date.parse(x.split("/").reverse().join("/")));
			document.getElementById("idade").value = (parseInt((data.getTime()-d.getTime())/31536000000)+" anos");
		}
		else alert("Informe uma data válida.");
	}
</script>

	Data <input type="text" onblur="calculaIdade(this.value)" />
	<br />
	Idade <input type="text" id="idade" />
</body>
</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

foi não.. cai sempre no else, informe uma data válida... :(

Compartilhar este post


Link para o post
Compartilhar em outros sites

A data que você está informando é em que formato?

 

a data esperada pelo script é no formato dd/mm/yyyy

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.