Como descobrir a idade de uma pessoa com PHP

O problema

Descobrir a idade de uma pessoa usando o antigo Date do PHP pode ser uma tarefa dificil, isso porque além de considerar a data de nascimento da pessoa, você vai ter que considerar o tempo.

Resolvendo com Datetime

Eu já escrevi um artigo aqui sobre Datetime, de qualquer forma você deve parar de comparar datas em forma de String usando Date, isso está errado!

A solução

Para resolver nosso problema é facil, imagine que temos um evento que precisamos saber se a pessoa vai ter X idade até o evento, podemos fazer a diferença da data de nascimento da pessoa com a data do evento, com apenas três linhas:

Primeiro, você instancia a data do evento:

$evento = new DateTime('2017-05-13');

Depois o aniversário da pessoa:

$aniversario = new DateTime('2004-05-13');

E, usando diff você encontra a data em anos:

echo $evento->diff($aniversario)->y;

Moleza né?