MuhammedArslan adlı üyeden alıntı

Önce strtotime ile elindeki tarihi unix zaman biçimine çevir. Sonra time(); fonksiyonu ile şimdiki zamanı al. Şimdiki zamandan ilk zamanı çıkarıp doğduğu günden şuana kadar geçen saniyeyi bulmuş olursun. Artık ondan sonra istedigin veriye cevirirsin :)


date_default_timezone_set('Europe/Istanbul');

$dogumtarihi = "1991-01-06"; // VERİTABANINDAN TARİH ÇEK
$yasabak = explode ("-",$dogumtarihi); // TARİH ARASINI TEMİZLE

$yil = $yasabak[0]; // YIL
$ay = $yasabak[1]; // AY
$gun = $yasabak[2]; // GÜN

$bugun = time(); // ŞUANKİ TARİH SANİYE CİNSİNDEN
$gecmis = mktime(00, 00, 00, $ay, $gun, $yil); // DOĞUM TARİHİ SANİYE CİNSİNDEN

$fark = $bugun - $gecmis; // KAÇ SANİYEDİR HAYATTASIN



$yilkacsaniye=365*24*60*60; // 1 YIL KAÇ SANİYE
$eksaat=6; // 1 YIL 365 GÜN 6 SAAT İSE 6 SAATİ HESABA DAHİL ET - İSTEMİYORSANIZ 0 YAZ..
$yileksaat=$eksaat*60*60; // EK 6 SAATİ HESAPLAYIP SANİYEYE ÇEVİRDİK

$birgunkacsaniye = 24*60*60; // BİR GÜN KAÇ SANİYE EDER.

$biryilkacsaniyeeder = $yilkacsaniye + $yileksaat ; // 365 GÜN + 6 SAATİN SANİYELERİ TOPLANDI


$yascek = floor($fark/$biryilkacsaniyeeder); // YIL HESAPLADIK
$kalansaniye =$fark%$biryilkacsaniyeeder; // mod ile EKSTRA KALAN GÜNÜ ÇIKARDIK
$gunhesap =floor($kalansaniye / $birgunkacsaniye); // VİRGÜNDEN SONRASINI GÖRME :)

echo "
";
echo $yascek . ' yıl ';
echo $gunhesap . ' gün ';

?>


dediğiniz şekilde yapmaya çalıştım . oldu gibi sanki..

birde yaş hesaplarken 365 gün olarak hesapladıgımızda 6-7 saat oynama yapıyordu.. 1 yılı bende 365 gün 6 saat olarak aldım..

Kodlamada hata varmı sizce