【问题标题】:Difference between the current date and the birthday date inserted in a form当前日期与表格中插入的生日日期之间的差异
【发布时间】:2016-09-13 00:34:47
【问题描述】:

在表单上,​​用户必须输入出生日期。 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 天?

【问题讨论】:

标签: php forms date timestamp strtotime


【解决方案1】:

我建议使用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";
}

【讨论】:

  • 别担心...我花了一段时间才找到 DateTime 库...因为每个人似乎都在 php 中手动执行日期和时间,这太可怕了
猜你喜欢
  • 2016-06-22
  • 1970-01-01
  • 2015-04-09
  • 2019-04-23
  • 1970-01-01
  • 2018-11-20
  • 2019-04-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多