年龄没有正确计算PHP

时间:2018-01-02 14:18:34

标签: php mysql

我的表格如下:

CREATE TABLE EMPLOYEE(
ID INT(3) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
Name VARCHAR(20) NOT NULL,
Age INT(3) NOT NULL,
Date DATE
);

日期存储用户的出生日期。我必须从出生日期开始计算年龄。我首先输入DOB并将名称输入到DB。 我现在通过以下方式检索最后一次自动增量:

$last=mysqli_insert_id($sqli);
echo "$last";

我现在从DOB中检索年份部分:

$sql="SELECT YEAR(Date) FROM EMPLOYEE WHERE ID='$last'";
$sql2=$sqli->query($sql);
if($sql2)
{
   echo "date retrieved";
   $row=mysqli_fetch_array($sql2);
   $rdate=$row['YEAR(Date)'];     // Year part DOB stored
   echo "$rdate";
}

我通过以下方式获取当前日期:

$cdate;   //current date
$sql='SELECT YEAR(CURDATE())';
$sql2=$sqli->query($sql);
if($sql2)
{
 $row=mysqli_fetch_array($sql2);
 $cdate=$row['YEAR(CURDATE())'];
 echo "$cdate";
}

我现在通过以下方式计算年龄:

 $diff=abs(strtotime($cdate)-strtotime($rdate));
 echo "<br/> before divide : ";
 echo "$diff";
 $diff=floor($diff/(24*60*60*365)); //convert to years

最后,我使用age:

的值更新表
 $sql="UPDATE EMPLOYEE
     SET Age='$diff' WHERE ID='$last'";

现在的问题是,当我尝试输入类似于2010+的DOB或显示的年龄是0.该程序从&lt; 2000完美地计算年龄。我也有一个输出来显示我的问题:

 name is pit
 successfulvalue inserted56date retrieved20122018   
 before divide : 360
 age after 1st divide:0age updated

这里的DOB是2012年 请帮助我找到解决方案。我是PHP的新手,需要一些帮助。

0 个答案:

没有答案