Ir para conteúdo

POWERED BY:

Arquivado

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

bcs_ptx

[Resolvido] converter data em idade

Recommended Posts

ai pessoal, fiz um script aqui para mostrar, data do dia, do nascimento do próximo aniversário e da idade, mas me perdi um pouco, alguém da um help? abraços

 

<?php

$anoH = date('Y');
$mesH = date('m');
$diaH = date('d');

$data_aniversario = '04/10/1988';

$tiraBarra = explode('/', $data_aniversario);

$diaN = $tiraBarra[0];
$mesN = $tiraBarra[1];
$anoN = $tiraBarra[2];	

$aniversario = $diaN.'/'.$mesN.'/'.$anoH;

echo 'data de hoje: '.$diaH.'/'.$mesH.'/'.$anoH.'<br>';
echo 'data de nascimento: '.$diaN.'/'.$mesN.'/'.$anoN.'<br>';
echo 'proximo aniversario: '.$aniversario;

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha essa aqui que achei em um fórum:

function calc_idade($data_nasc) {
$data_nasc=explode("/",$data_nasc);
$data=date("d/m/Y");
$data=explode("/",$data);
$anos=$data[2]-$data_nasc[2];
if ($data_nasc[1] > $data[1]) {
return $anos-1;
} if ($data_nasc[1] == $data[1]) {
if ($data_nasc[0] <= $data[0]) {
return $anos;
break;
} else {
return $anos-1;
break;
}
} if ($data_nasc[1] < $data[1]) {
return $anos;
}
}
echo calc_idade("$dia/$mes/$ano");

Testei e serviu.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu faria o seguinte...

Criaria uma variável com a data de nascimento e uma variável com o ano atual...

No caso: $nascimento e $ano

 

E faria: $idade = '$nascimento - $ano';

 

:rolleyes:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu faria o seguinte...

Criaria uma variável com a data de nascimento e uma variável com o ano atual...

No caso: $nascimento e $ano

 

E faria: $idade = '$nascimento - $ano';

De fato é uma possibilidade, mas pra quê contornar o problema se a classe DateTime faz isso com o pé nas costas:

 

$today = new DateTime;

echo $today -> diff( new DateTime( 'YYYY-MM-DD' ) ) -> y, ' years';

Basta inserir a data completa no formato mostrado acima e pronto.

Compartilhar este post


Link para o post
Compartilhar em outros sites

assim, eu já fiz quase tudo oque queria nesse script, mostra a data do dia, a data do nascimento, a idade e o número de dias, agora eu só queria colocar a data do próximo aniversário;

 

<?php

include("conexao.php");

$seleciona = "
SELECT
	data_nascimento,
	date(now()) as hoje,
	DATEDIFF(date(now()),data_nascimento) AS dias
FROM
	tbl_usuarios
WHERE
	id_usuario = '7'";

$query = mysql_query($seleciona);	
$dados = mysql_fetch_assoc($query);

$idade = $dados['dias'] / 365;

$nascimento = $dados['data_nascimento'];
$hoje = date('Y-m-d');

echo 'nascimento: '.$dados['data_nascimento'].'<br>';
echo 'hoje: '.$dados['hoje'].'<br>';
echo 'dias: '.$dados['dias'].'<br>';
echo 'idade: '.$idade.'<br>';

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenta isso:

 

$nascimento = new DateTime('1982-12-20'); // Dt Nascimento
$hoje = new DateTime( date('Y-m-d') ); // Atual
$interval = $nascimento->diff($hoje); 
$interval->format('%Y'); // Diferença em ano

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, eu fiz oque eu queria, mas ficou bem grande, mas funciona certinho

 

<?php

include("conexao.php");

$seleciona = "
SELECT
	data_nascimento,
	date(now()) as hoje,
	DATEDIFF(date(now()),data_nascimento) AS dias,
	nome
FROM
	tbl_usuarios
ORDER BY nome ASC";

$query = mysql_query($seleciona);	
while($dados = mysql_fetch_assoc($query)){

$idade = $dados['dias'] / 365;

$nascimento = $dados['data_nascimento'];
$hoje = $dados['hoje'];

$arrayHoje = explode('-', $hoje);
$arrayNascimento = explode('-', $nascimento);

$ano = $arrayHoje[0];
$mes = $arrayHoje[1];
$dia = $arrayHoje[2];

$ano = $arrayNascimento[0];
$mes = $arrayNascimento[1];
$dia = $arrayNascimento[2];

$arrayMostraNascimento = array($arrayNascimento[2].'/'.$arrayNascimento[1].'/'.$arrayNascimento[0]);
$mostraNascimento = implode(",", $arrayMostraNascimento);

$arrayAniversario = array($arrayHoje[0].$arrayNascimento[1].$arrayNascimento[2]);
$juntaAniversario = implode(",", $arrayAniversario);
$arrayAniversario2 = array($arrayNascimento[2].'/'.$arrayNascimento[1].'/'.$arrayHoje[0]);
$juntaAniversario2 = implode(",", $arrayAniversario2);

$array = array($arrayHoje[0].$arrayHoje[1].$arrayHoje[2]);
$juntaHoje = implode(",", $array);
$arrayMostraHoje = array($arrayHoje[2].'/'.$arrayHoje[1].'/'.$arrayHoje[0]);
$mostraHoje = implode(",", $arrayMostraHoje);

$arrayProximo = array(($arrayHoje[0] +1).$arrayNascimento[1].$arrayNascimento[2]);
$proximo = implode(",", $arrayProximo);
$arrayProximo2 = array($arrayNascimento[2].'/'.$arrayNascimento[1].'/'.($arrayHoje[0] +1));
$proximo2 = implode(",", $arrayProximo2);

$resultado = $juntaHoje - $juntaAniversario;

if($resultado == 0){
	echo 'hoje é seu aniversario: '.$juntaAniversario2.' parabéns pelos seus '.substr($idade, 0, 2).' anos de idade'.'<br>';
}else if($resultado > 0){
	echo 'proximo aniversariomais: '.$proximo2.'<br>';
}else if($resultado < 0){
	echo 'proximo aniversariomenos: '.$juntaAniversario2.'<br>';
}



echo 'nome: '.$dados['nome'].'<br>';
echo 'nascimento: '.$mostraNascimento.'<br>';
echo 'hoje: '.$mostraHoje.'<br>';
echo 'dias: '.$dados['dias'].'<br>';
echo 'idade: '.substr($idade, 0, 2).'<br>';
echo '<hr />';
}

?>

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.