0

人の年齢を計算する関数に日付を渡そうとしています。ただし、データベースでは日付がYmd形式であるため、「Ymd」形式で渡す必要があります。文字列の連結を試しましたが、マイナス(-)演算子を使用して数値を操作したためか、失敗しました。同じ方法を教えてください。

$ dob変数でDOBをフェッチし、それをCalculateAge($ dateofbirth)関数に渡します。

コードは次のとおりです。

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);   
4

2 に答える 2

0

これを使って:echo date("\"Y-m-d\"");

于 2012-07-03T06:47:36.863 に答える
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); 
于 2012-07-03T06:54:25.710 に答える