显示从出生日期开始的年龄?

时间:2012-12-07 23:10:09

标签: php mysql dob

您好我有一个网站显示在首页上。当用户注册该网站时,他们会注明其出生日期。这存储在我的数据库中。

我已从数据库中提取用户并显示其位置和名称。

我也试图增加他们的年龄,这是根据他们的出生日期计算的。但目前它不起作用,用户年龄没有显示。

任何人都可以帮我找到我错的地方吗?

代码:

 <?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>";
        }
    ?>

3 个答案:

答案 0 :(得分:1)

我不知道你使用哪种模板引擎,允许什么以及什么不是......但通常最简单的方法是最好的...所以试试这个

<?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>";
        }
    ?>

答案 1 :(得分:0)

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

答案 2 :(得分: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;
    }