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

  • chickenby

    chickenby

    2 HAZİRAN 2008
  • eisleyhead

    eisleyhead

    11 Ocak 2006
  • Samantha Crain

    Samantha Cra

    30 EKİM 2008