Cumartesi, Ocak 23, 2010

PHP ile yaş hesaplama yöntemleri

Bu iş için hazırlanmış özel bir fonksiyon bulamadım. Nette biraz araştırma yapınca farklı sonuçlar veren iki yöntem buldum. Bunun sebebi ise yaşı hesaplayan yöntemlerden birinde kişinin hayatta olduğu sürenin saniye cinsiden ifade edilerek hesaplama yapılmasından kaynaklanmakta. Aşağı da açıklamaları ile beraber ufak bir script paylaştım.

<?php
function yasHesapla_1($tarih)
{
//"/" karakterine göre girilen tarihi
// parse ettik
$tarih = explode("/",$tarih);

//Sistemin yılını aldık
$simdikiYil = date('Y');

//Sistem yılınmdan kullanıcının girdiği
// yıl değerini çıkardık
$yas = $simdikiYil - $tarih[2];

return $yas;
}

function yasHesapla_2($tarih)
{
//Unixin çıkışından(1 Ocak 1970 00:00:00 GMT)
//bu yana geçen zamanı saniye cinsinden aldık.
$simdikiTarih = time();

//"/" karakterine göre girilen tarihi
// parse ettik
$tarih = explode('/',$tarih);

//Kullanıcıdan aldığımız tarihi
//saniye cinsinden ifade ettik
$tarih = mktime(0,0,0,$tarih[1],$tarih[0],$tarih[2]);

//Saniye cinsinden iki sayıyı çıkardık
$yas = $simdikiTarih - $tarih;

//Saniye cinsinden olan sayıyı gün olarak ifade ettik
$yas = floor($yas/(60*60*24));

//Gün cinsinden olan sayıyı yıl olarak ifade ettik
$yas = floor($yas/365);

return $yas;
}

echo yasHesapla_1("27/10/1986")."<br />";
echo yasHesapla_2("27/10/1986")."<br />";
?>

4 yorum:

ÜNAL dedi ki...

teşekürler esat beynine eline diline ... sağlık :D ;)

Anonim dedi ki...

SELECT DATE_FORMAT(FROM_DAYS(TO_DAYS(NOW())-TO_DAYS(usr_birthdate)), '%Y')+0 AS age FROM people;

bu daha iyi :)

Esat ARSLAN dedi ki...

Adı üstünde PHP Fonksiyonu Sql değil :)

ugorur dedi ki...

@adsız PHP ile yapabileceğini SQL ile yapma diye bir söz vardır. PHP ile hesaplama daha kısa sürede yapılır.