在表单中插入的当前日期和生日日期之间的差异

时间:2016-09-13 00:34:47

标签: php forms date timestamp strtotime

在表单上,​​用户必须输入出生日期。 PHP应该控制他是否已经完成了18年。

$birth = $_POST['data_nascita']; 
$str_birth = strtotime ($birth );        

$today = date("m/d/Y");
$str_today = strtotime ($today);                

if($today - $str_today < 567648000) {
    echo'you can't drive a car in Italy because you are underage';exit(); 
}
// 18 years * 31536000 second in 1 year = 567648000

如果我把生育场放在1998年9月14日(今天是2016年9月13日,那么18年还没有完全花费),那么控制不起作用;它从1998年9月15日开始运作。

为什么我失去了2天?

1 个答案:

答案 0 :(得分:0)

我建议使用DateTime Class因为它内置了所有日期和时间功能和数学。

一个例子:

$birth = new DateTime($_POST['date_of_birth']);
$today = new DateTime('now');

$diff = $birth->diff($today);

if($diff->format('%Y') > 18) {
    echo "Can drive";
} else {
    echo "Can't Drive";
}