2012-07-03 48 views
0

我想把日期傳遞給一個計算一個人的年齡的函數。但是,數據庫中的日期格式爲Y-m-d格式,我需要以「Y-m-d」格式傳遞它。我試過字符串連接,但失敗了,也許是因爲它只是使用減號( - )運算符來操作數字。請讓我知道如何去做。需要把日期放在引號中

我取在$ DOB變量的DOB,並將它傳遞給CalculateAge($出生日期)函數

下面是代碼:

function CalculateAge($BirthDate) 
{ 
     // Put the year, month and day in separate variables 
     list($Year, $Month, $Day) = explode("-", $BirthDate); 

    //echo $Year;  

     $YearDiff = date("Y") - $Year; 
     // If the birthday hasn't arrived yet this year, the person is one year younger 
     if(date("m") < $Month || (date("m") == $Month && date("d") < $Day)) 
     { 
       $YearDiff--; 
     } 
    if(date("m") > $Month || date("m") == $Month) 
     $MonthDiff = date("m") - $Month; 
    else 
     $MonthDiff = 12 - $Month + date("m"); 

    $age = $YearDiff + $MonthDiff/12; 
     return $age; 
} 
$dob = mysql_query("SELECT date_of_birth FROM kids_informations WHERE user_id = '$usid'"); 
$rs = CalculateAge($dob); 
+1

讓我們看看你的嘗試。 – Musa

+0

如果'$ dateofbirth'是一個字符串,則不需要引用它。 – xdazz

+0

我們需要更多的細節,目前你所要求的並沒有多大意義。 – deceze

回答

0

這可能工作 -

$result = mysql_query("SELECT date_of_birth FROM kids_informations WHERE user_id = '$usid'"); 

while($row = mysql_fetch_array($result)) 
{ 
    $dob = $row['date_of_birth']; 
} 

$dob = "\"".$dob."\""; 

$rs = CalculateAge($dob); 
+0

在回顯$ dob時,我得到:資源ID#32 – rahulritesh

+0

請參閱編輯。我不確定,但你可以找到一個更簡單的方法來獲取date_of_birth ... – skos

+0

終於明白了!你的解決方案部分工作,因爲我不得不刪除「從一年的字符串開始!感謝您的努力! 請在列表語句後添加此行到函數CalculateAge(dob),以便我可以將您的答案標記爲正確的一個:$ year = substr($ Year,1);必須在下一行用$ year替換變量$ Year! – rahulritesh

0

使用本:echo date("\"Y-m-d\"");