您好我有一个网站显示在首页上。当用户注册该网站时,他们会注明其出生日期。这存储在我的数据库中。
我已从数据库中提取用户并显示其位置和名称。
我也试图增加他们的年龄,这是根据他们的出生日期计算的。但目前它不起作用,用户年龄没有显示。
任何人都可以帮我找到我错的地方吗?
代码:
<?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 :(得分: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;
}