Bagaimana cara mudah menentukan usia dari hari ulang tahun? (php) [duplikat]

Kemungkinan Duplikat:
Hitung tahun dari tanggal

Hi,

Saya memiliki tabel dengan bidang yang mewakili ulang tahun. Bagaimana cara mengetahui usia seseorang pada tanggal tersebut?

Inilah yang saya punya.

$qPersoonsgegevens = "SELECT * FROM alg_persoonsgegevens WHERE 
alg_persoonsgegevens_leerling_ID = $leerling_id";

$rPersoonsgegevens = mysql_query($qPersoonsgegevens);
$aPersoonsgegevens = mysql_fetch_assoc( $rPersoonsgegevens );

$timeBirthdate = mktime($aPersoonsgegevens['alg_persoonsgegevens_geboortedatum']);

Sayangnya, saya tidak tahu bagaimana melanjutkan dari titik itu untuk mendapatkan usia tersebut.

Bantuan apa pun sangat kami hargai.
Matthy


person matthy    schedule 29.07.2009    source sumber


Jawaban (3)


Ini telah ditanyakan sebelumnya. Coba ini:

function getAge($then) {
    $then = date('Ymd', strtotime($then));
    $diff = date('Ymd') - $then;
    return substr($diff, 0, -4);
}

Sebut saja seperti ini:

$age = getAge($aPersoonsgegevens['alg_persoonsgegevens_geboortedatum']);
person Community    schedule 29.07.2009
comment
Hampir semuanya bisa diselesaikan dengan strtotime (seperti sihir) - person Tyler Carter; 30.07.2009

Ulang Tahun dan Usia Tergantung Budaya

Mungkin berguna untuk mengingat bahwa beberapa budaya mulai menghitung usia Anda sejak pembuahan atau mulai menghitung usia 1 tahun pada saat kelahiran. Secara khusus, Anda harus berhati-hati terhadap pasar Korea saat melakukan penghitungan usia.

Saya ragu penulis pertanyaan memerlukan informasi ini, tetapi saya hanya ingin meneriakkannya karena mungkin berguna bagi programmer di suatu tempat dan kapan saja.

person Elijah    schedule 29.07.2009

Saya menulis sebuah aplikasi yang menampilkan usia bayi (sampai 24 bulan) dalam bulan atau hari (untuk bayi di bawah 1 bulan):

public function getAge ()
{
  if ($this->getBirthDate() === null) {
return null;
  }

  if (! $this->getAdmitTime() == null ) {
$relative_to = $this->getAdmitTime(null);  # null format returns Unix ts
  }
  else {
$relative_to = time(); # Unix ts
  }

  $age_in_seconds = $relative_to - $this->getBirthDate(null);
  $age_in_years = intval($age_in_seconds / (60*60*24*365.25));

  if ($age_in_years >= 2) {
return $age_in_years;
  }
  else {
$age_in_months = intval($age_in_seconds / (60*60*24*30));
if ($age_in_months >= 1) {
  return "$age_in_months month". ($age_in_months == 1 ? '' : 's');
}
else {
  $age_in_days = intval($age_in_seconds / (60*60*24));
  return "$age_in_days day" . ($age_in_days == 1 ? '' : 's');
}
  }

}

Jadi, Anda mungkin memiliki nilai usia yang dapat dibaca manusia berikut ini:

  • 21
  • 3
  • 17 bulan
  • 3 hari
person Nathan    schedule 30.07.2009