ฉันจะกำหนดอายุจากวันเกิดได้อย่างง่ายดายได้อย่างไร? (php) [ซ้ำกัน]

รายการซ้ำที่เป็นไปได้:
คำนวณปีนับจากวันที่

Hi,

ฉันมีตารางที่มีช่องแสดงวันเกิด จะค้นหาอายุของบุคคลจากวันนั้นได้อย่างไร?

นี่คือสิ่งที่ฉันมี

$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']);

น่าเสียดายที่ฉันไม่รู้ว่าจะต้องทำอย่างไรจากจุดนั้นเพื่อให้ได้อายุ

ขอขอบคุณสำหรับความช่วยเหลือใดๆ มาก
Matthy


person matthy    schedule 29.07.2009    source แหล่งที่มา


คำตอบ (3)


มีคนถามไปแล้ว ลองสิ่งนี้:

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

เรียกมันว่า:

$age = getAge($aPersoonsgegevens['alg_persoonsgegevens_geboortedatum']);
person Community    schedule 29.07.2009
comment
เกือบทุกอย่างสามารถแก้ไขได้ด้วย strtotime (มันเหมือนกับเวทย์มนตร์) - person Tyler Carter; 30.07.2009

วันเกิดและอายุขึ้นอยู่กับวัฒนธรรม

อาจเป็นประโยชน์ที่ต้องจำไว้ว่าบางวัฒนธรรมเริ่มนับอายุของคุณตั้งแต่ปฏิสนธิหรือเริ่มนับเมื่ออายุ 1 ขวบ ณ เวลาที่เกิด โดยเฉพาะคุณจะต้องระมัดระวังตลาดเกาหลีเมื่อทำการคำนวณอายุ

ฉันสงสัยว่าผู้เขียนคำถามต้องการข้อมูลนี้ แต่ฉันแค่อยากจะตะโกนออกไปเพราะมันอาจเป็นประโยชน์กับโปรแกรมเมอร์ที่ไหนสักแห่งและในบางครั้ง

person Elijah    schedule 29.07.2009

ฉันเขียนแอปที่แสดงอายุของทารก (สูงสุด 24 เดือน) เป็นเดือนหรือวัน (สำหรับทารกอายุต่ำกว่า 1 เดือน):

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');
}
  }

}

ดังนั้น คุณอาจมีค่าอายุที่มนุษย์สามารถอ่านได้เหล่านี้:

  • 21
  • 3
  • 17 เดือน
  • 3 วัน
person Nathan    schedule 30.07.2009