2012-12-07 161 views
0

嗨,我有一個用戶顯示在首頁的網站。用戶在註冊時註冊他們的出生日期。這存儲在我的數據庫中。顯示年齡從出生日期?

我已經從數據庫中拉出用戶並顯示其位置和名稱。

我也試圖增加從出生日期算起的年齡。但目前它無法工作,用戶的年齡沒有被顯示出來。

任何人都可以幫我找到我要去哪裏錯了嗎?

代碼:

<?php 
$dob = $platinum['dob']; 

function age_from_dob($dob) { 

    list($y,$m,$d) = explode('-', $dob); 

    if (($m = (date('m') - $m)) < 0) { 
     $y++; 
    } elseif ($m == 0 && date('d') - $d < 0) { 
     $y++; 
    } 

    return date('Y') - $y; 

} 

$dob = age_from_dob($dob); 

?> 

<? 

     $platinum_set = get_platinum_users(); 
     while ($platinum = mysql_fetch_array($platinum_set)) { 
      echo" 
      <div class=\"platinumcase\"> 
      <a href=\"profile.php?id={$platinum['id']}\"><img width=80px height= 80px src=\"data/photos/{$platinum['id']}/_default.jpg\" class=\"boxgrid\"/></a><h58> {$platinum['first_name']} {$platinum['last_name']}</h58><br/><br/><h52>{$platinum['$dob']}<br/><br/>{$platinum['location']}</h52> 

      </div>"; 
     } 
    ?> 
+0

它看起來像你使用回聲時,而不是你應該有另一套?><?PHP塊... – RonaldBarzell

+1

你在第一個if語句,這是分配$ M可能是無意的。將它切換爲兩個等號而不是一個。 – nickb

回答

0
function age_from_dob($dob) { 
    return DateTime::createFromFormat('Y-m-d',$dob, $tz)->diff(new DateTime('now', $tz))->y; 
} 
+1

雖然示例代碼是有幫助的,但這個答案不是。你沒有解釋這段代碼的作用,它是如何工作的,或者它將如何提供幫助。 – Charles

1

我不知道你使用的模板引擎,什麼是allowd,什麼不可以...但通常最簡單的方法是最好的......所以試試這個

<?php 
$dob = $platinum['dob']; 

function age_from_dob($dob) { 

     $dob = '1999-12-03'; 
     $age = date_diff(date_create($dob), date_create('now'))->y; 
     return $age; 
} 

?> 

<? 

     $platinum_set = get_platinum_users(); 
     while ($platinum = mysql_fetch_array($platinum_set)) { 
     $age = age_from_dob($platinum['dob']); 
      echo " 
      <div class=\"platinumcase\"> 
      <a href=\"profile.php?id={$platinum['id']}\"><img width=80px height= 80px src=\"data/photos/{$platinum['id']}/_default.jpg\" class=\"boxgrid\"/></a><h58> {$platinum['first_name']} {$platinum['last_name']}</h58><br/><br/><h52> ".$age." <br/><br/>{$platinum['location']}</h52> 

      </div>"; 
     } 
    ?> 
+0

我如何將它添加到div中,以便它顯示給每個鉑金用戶? –

+0

謝謝,但是當我使用,我得到一個語法錯誤。 –

+0

對不起...實際上我沒有測試它..只是確保你在輸出中正確使用了age_from_dob($ platinum ['dob'])的結果......另一種可能的方式是這最後編輯 – Mik

0

我用這個函數返回我的用戶的年齡。希望這有助於

function HowOld($DOB) 
    { 
      if($DOB) 
        { 
       $birthday = strtotime($DOB); 
       $date = strtotime(date("Y-m-d ")); 
       $difference = $date - $birthday; 
       $years = $difference/(60 * 60 * 24 * 365); 
       $value = floor($years); 
       return $value; 
      } 
     return false; 
    } 
相關問題