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

3 回答 3

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>";
        }
    ?>
于 2012-12-07T23:14:57.833 回答
0
function age_from_dob($dob) {
    return DateTime::createFromFormat('Y-m-d',$dob, $tz)->diff(new DateTime('now', $tz))->y;
}
于 2012-12-07T23:19:01.750 回答
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;
    }
于 2012-12-08T01:32:34.963 回答