簡體   English   中英

在PHP中計算生日的年齡

[英]Calculate age from birthdate in PHP

我的一個朋友給了我這個代碼,但是我似乎無法使它正常工作。 它一直告訴我我有一個未定義的變量,但是我嘗試用幾種不同的方式定義它,但是它沒有顯示出正確的年齡,它顯示的所有人都是43歲。這是我正在使用的代碼:

$bdate= getdate('$_GET["bd"]');

if($bdate == 0){ $nodate = 1; }
$bdate = strtotime( $bdate );
$birthday = date("n/j/Y",$bdate);  //must be as m/d/yyyy

$bday = explode("/", $birthday); //parse
$b_mm = $bday[0]; //birthday month
$b_dd = $bday[1]; //birthday day
$b_yyyy = $bday[2]; //birthday year

//compare timestamps of mm/dd for birthday and today
$bday_mm_dd = mktime(0,0,0,$b_mm,$b_dd,0);
$today_mm_dd = mktime(0,0,0,date("m"),date("d"),0);
$age = date("Y", time()) - $b_yyyy;

if ($bday_mm_dd > $today_mm_dd) {
//birthday hasnt happened yet this year
$age = $age - 1;
}

為了澄清我的sql語句,我將生日列為bd。

如果有人可以提供幫助,我將不勝感激。

getdate()返回一個關聯數組,而不是日期的文本表示形式。 strtotime()無法理解這一點,因此您對date()的首次調用會將其時間戳參數解釋為零,即UNIX時代。

猜猜這個時代是多少年前的? :)

跳過strtotime(),僅將$bdate[0]傳遞給date()。 這將包含'bd'的時代時間戳記表示形式。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM