我根据下拉列表中的选择注册了我的DOB。
Date of Birth:
<select name="DOBDay" required>
<option> Day </option>
<option value="1">1</option>
<option value="2">2</option>
// etc ....
月和年采用相同的方法。因此,当我处理注册表单时,从这三个下拉列表中获取数据并分配给三个不同的变量:
$DOBDay = strip_tags(@$_POST['DOBDay']);
$DOBMonth = strip_tags(@$_POST['DOBMonth']);
$DOBYear = strip_tags(@$_POST['DOBYear']);
我需要一种方法可以根据提供的DOB获取用户的当前年龄,但由于我将它存储在三个不同的变量(以及我的数据库中的三个不同的列)中,我不知道如何我可以得到他们现在的年龄。有什么想法吗?
更多详情:
我需要一个$age
变量来计算年龄,我需要它是int类型,这样我就可以将年龄存储在我的db中的age
列中。
答案 0 :(得分:1)
这个怎么样:
$birthday = new DateTime();
$birthday->setDate($DOBYear, $DOBMonth, $DOBDay);
$now = new DateTime("now");
$age = $birthday->diff($now);
echo $age->y . " years old";
答案 1 :(得分:0)
获取字符串并将它们连接成日期格式并使用与此类似的代码。
<?php
//date in mm/dd/yyyy format; or it can be in other formats as well
$birthDate = "$DoBMonth/$DoBDay/$DoBYear";
//explode the date to get month, day and year
$birthDate = explode("/", $birthDate);
//get age from date or birthdate
$age = (date("md", date("U", mktime(0, 0, 0, $birthDate[0], $birthDate[1], $birthDate[2]))) > date("md")
? ((date("Y") - $birthDate[2]) - 1)
: (date("Y") - $birthDate[2]));
echo "Age is:" . $age;
?>