← PHP

[php] Idade errada

Lida 1526 vezes

Offline

bfms 
Equipa
Mensagens 1769 Gostos 40
Feedback +1

Troféus totais: 35
Trófeus: (Ver todos)
Search Level 6 Apple User Super Combination Combination Topic Starter 50 Poll Votes 10 Poll Votes Poll Voter Poll Starter

Código: [Seleccione]
<?php
$data 
date('%-m-d');
$sql "SELECT *, DATE_FORMAT(FROM_DAYS(DATEDIFF(NOW(),DateOfBirth)), '%Y')+0 AS Idade FROM Profiles Where DateOfBirth like '$data'";
?>

Tenho este código para ir buscar os aniversários do dia actual e fazer o cálculo da idade da pessoa.

No entanto acontece-me que as duas primeiras pessoas da lista de aniversários tem um ano a menos, ou seja, está a contar como se a pessoa tivesse um ano a menos.
Os restantes estão correctos.

Se colocar +1 ficam os dois primeiros correctos e os restantes mal...

Que se pode estar a passar?

Obrigado
Offline

GTO_KAI 
Membro
Mensagens 532 Gostos 13
Troféus totais: 31
Trófeus: (Ver todos)
Level 6 Windows User Super Combination Combination Topic Starter Poll Voter Poll Starter Level 5 Level 4 Level 3

Acho que o jeito mais fácil é criando um if para identifica-las e colocar +1 na data.
Offline

Umbus 
Membro
Mensagens 97 Gostos 0
Troféus totais: 23
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Poll Voter Level 4 Level 3 Level 2 Level 1 50 Posts 10 Posts

Existe algum problema com o registo que fizeram, porque se a base de dados disser que tem 18 anos tem 18 anos nem mais um dia. Podes dar um excerto da base de dados (dados)?