Jump to content
Fórum Script Brasil
  • 0

Calcular Idade A Partir Da Data De Nascimento


Beraldo
 Share

Question

Script postado por: Fabyo

Calcular Idade a Partir da Data de Nascimento

<?php

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] ){

if ( $data_nasc[0] <= $data[0] ){

return $anos; break;

}else{

return $anos-1;

break;

}

}else{

return $anos;

}

}

$anos = calc_idade("18-05-1977");

echo "$anos anos"; //27 anos

?>

Link to comment
Share on other sites

7 answers to this question

Recommended Posts

  • 0

ta errado o script de cima, segue o correto:

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");

Link to comment
Share on other sites

  • 0
Guest --Léo --

Como no banco de dados a data é armazenada no formado AAAA-MM-DD a função corretá é:

function calcula_idade($data_nascimento) {

    $data_nasc = explode('-', $data_nascimento);
    $data = date('Y-m-d');
    $data = explode("-", $data);
    $anos = $data[0] - $data_nasc[0];
    
    if ($data_nasc[1] >= $data[1]){
        if ($data_nasc[2] <= $data[2]){
            return $anos; break;
        } else {
            return $anos-1;
            break;
        } 
    } else {
        return $anos;
    } 
}

Link to comment
Share on other sites

  • 0
<?php

//Como o formato do banco de dados é aaaa-mm-dd

//basta usar essa 4 linhas qu vai dar exato a idade

$datanas = "1980-01-28";

$data = date('Y-m-d');

$idade = $data-$datanas;

echo "$idade";

?>

Na verdade, não é bem assim..

O que acontece é que, ao fazer uma operação de subtração, o PHP vai interpretar a data como número, até encontrar o -, caractere a partir do qual ele ignorará todo o restante. Desta forma, o que ele faz é apenas um subtração simples do ano, ignorando o mês e o dia.

Assim, se você nasceu em 1980-01-28 e a data do servidor Web estiver em 2008-01-01, estas quatro linhas retornarão 28, e não 27 como deveria ser.

Link to comment
Share on other sites

  • 0

Este script recebe a data no formato padrão do banco yyyy-mm-dd;

<?php
// Paramentos: $mm $dd $yyyy de aniversario
function pegaIdade($datab) {
$data = split("-",$datab);
$anob = $data[0];
$mesb = $data[1];
$diab = $data[2];
list ($dia,$mes,$ano) = explode("/",date("d/m/Y"));
$idade = $ano-$anob;
$idade = (($mes<$mesb) OR (($mes==$mesb) AND ($dia<$diab))) ? --$idade : $idade;
return $idade;
}
?>
coloque a variavel como ela retorna do banco:
<?=pegaIdade($dados['data_nasc'])?>

Edited by pedraozaum
Link to comment
Share on other sites

  • 0
Script postado por: Fabyo

Calcular Idade a Partir da Data de Nascimento

<?php

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] ){

if ( $data_nasc[0] <= $data[0] ){

return $anos; break;

}else{

return $anos-1;

break;

}

}else{

return $anos;

}

}

$anos = calc_idade("18-05-1977");

echo "$anos anos"; //27 anos

?>

Eu acho bem mais fácil e útil fazer da seguinte forma:

<?php

function calcular_idade( $ano_de_nasc ){

$ano_de_hoje = date("Y");
$idade = $ano_de_hoje - $ano_de_nasc;

echo $idade;

}

calcular_idade("1996");

?>

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share



  • Forum Statistics

    • Total Topics
      151k
    • Total Posts
      649.1k
×
×
  • Create New...