年龄后搜索用户。如何计算正确的确定年龄?

时间:2015-10-12 21:12:26

标签: php mysql

我希望能够在年龄之后搜索用户:

(Age input saved in variables $a1 - $a2)
Age: □ - □ 
     -Search button-

如果我选择年龄:20-50我希望列出20-50岁之间的所有用户。 如果我选择年龄:x-30我希望列出所有30岁以下的用户。

在db中,我使用以下格式保存用户生日:2013-03-03。

要计算用户年龄并在网页上回显年龄,我会这样做:

<?php 

$ag=$row['age'];
$diff=time()-strtotime($ag);
$age=date('Y-m-d', strtotime($ag));

echo floor($diff/60/60/24/365.25); 
?>

如何制作选择查询年龄&gt; $ a1和&lt; $ A2吗

1 个答案:

答案 0 :(得分:1)

您应该从所需年龄计算日期

,而不是从返回日期计算年龄
$mindate = is_numeric($a2)? date("Y-m-d", strtotime('-$a2 year')) : null;
$maxdate = is_numeric($a1)? date("Y-m-d", strtotime('-$a1 year')) : null;
$query = "SELECT * FROM whatevertable WHERE ";
if(!is_null($mindate))
   $query .= "datecolumn > '$mindate'";
if(!is_null($maxdate)){
   if(!is_null($mindate)
      $query .= " AND ";
   $query .= "datecolumn < $maxdate";
}

验证和查询抛光留作练习。