Em certas ocasiões precisamos calcular a idade de uma pessoa através de sua data de nascimento para podermos executar rotinas que exigem comportamentos específicos de acordo com a idade. Por exemplo, se você está criando um sistema que filtra o conteúdo oferecido por idade, você vai precisar usar algo desse tipo. Geralmente nos cadastros de usuário é solicitada a data de nascimento que é utilizada para calcular a idade.
A data de nascimento também costuma ser usada para automatização do envio de mensagens de aniversário, mas podemos ver isso em outra oportunidade. Voltando ao tema, vamos criar uma função que receberá como parâmetro uma data e de posse dessa informação, procederá com o cálculo. Vamos lá:
# Função para calcular a idade de uma pessoa
# tendo recebido como parâmetro a data
# de nascimento. Essa rotina poderia ser usada,
# por exemplo, em ocasiões onde é necessário
# fazer uma validação de idade.
function userAge( $date ){
# Aqui convertemos a string passada
# por parâmetro em um objeto data.
$date = new DateTime( $date );
# Calvulamos a diferença entre a data atual
# e a data fornecida como parâmetro.
$diff = $date->diff( new DateTime( date('Y-m-d') ) );
# Tudo pronto, podemos retornar
# a idade do usuário.
return $diff->format( '%Y anos' );
}
Agora é só chamar a função quando precisarmos calcular a idade de alguém. No exemplo a seguir, usaremos a variável “$birth”, que recebeu uma data de nascimento, como o parâmetro da função. Num caso real, poderíamos usar o valor de uma data vindo de um formulário no nosso site.
# Fornecemos uma data
$birth = '1971-11-01';
# Faremos uma chamada da função fornecendo
# a variável $birth como parâmetro e receberemos o
# valor retornado pela função na variável $age.
$age = userAge( $birth );
A variável $age agora contém a idade do usuário e podemos usar onde necessitarmos. No nosso caso, vamos apenas imprimir na tela.
echo $age;
Prontinho, nossa função de cálculo de idade está feita. Você pode aprimorar conforme a sua necessidade, implementando outros recursos.
Deixe um comentário:
Deixe seu comentário. Só serão exibidos comentários ligados ao texto do post. Links serão removidos.