SORU
23 EYLÜL 2010, PERŞEMBE


PHP yaş hesaplamak

Bir kişinin yaşı, biçimi GG/AA/yyyy kendi doğum tarihi hesaplamak için arıyorum.

Bir arıza bu süre hiç bitmeyecek ve bir durdurmak için tüm site öğütmek için döngü neden olduğu kadar ince birkaç ay çalışmış olan aşağıdaki işlev kullanıyordum. Neredeyse 100.000 DOBs bu fonksiyon ile birkaç kez bir gün vardır, bunun neden olduğunu tespit edin.

Herkes yaşını hesaplamak daha güvenilir bir yolu var mı?

//replace / with - so strtotime works
$dob = strtotime(str_replace("/","-",$birthdayDate));       
$tdate = time();

$age = 0;
while( $tdate > $dob = strtotime(' 1 year', $dob))
{
      $age;
}
return $age;

EDİT: bu fonksiyonu OK, zaman zaman iş gibi görünüyor, ama "" 14/09/1986 bir DOB için . 40 döndürür

return floor((time() - strtotime($birthdayDate))/31556926);

CEVAP
23 EYLÜL 2010, PERŞEMBE


$tz  = new DateTimeZone('Europe/Brussels');
$age = DateTime::createFromFormat('d/m/Y', '12/02/1973', $tz)
     ->diff(new DateTime('now', $tz))
     ->y;

PHP 5.3.0 kullanabilirsiniz kullanışlı DateTime::createFromFormat emin olmak için randevun yok yok yanlış m/d/Y format ve DateInterval sınıf () DateTime::diff) sayısı yıl arasında şimdi ve hedef tarih.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:
Php

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Autocar

    Autocar

    11 Mart 2006
  • RinconDynamic

    RinconDynami

    1 EKİM 2011
  • Sorikan

    Sorikan

    3 ŞUBAT 2008