如何减去两个日期和时间以获得差异

use*_*269 8 php datetime

我必须发送一封电子邮件,当用户注册电子邮件包含一个链接,该链接在六小时后变为无效我正在做什么时发送电子邮件我用字段email"日期时间"的电子邮件更新数据库现在我得到了临时日期和时间我现在想要发现这些日期和时间与6小时不同,以便我可以使链接无效,但我不知道如何做到这一点

我的代码看起来像这样使用db的硬编码值,例如

$current_date_time=date("Y-m-d h:i:s");
$current=explode(" ",$current_date_time);
$current_date=$current[0];
$current_time=$current[1];
$db_date_time="2010-07-30 13:11:50";
$db=explode(" ",$db_date_time);
$db_date=$db[0];
$db_time=$db[1];
Run Code Online (Sandbox Code Playgroud)

我不知道如何进行plz帮助

Vol*_*erK 19

<?php
//$now = new DateTime(); // current date/time
$now = new DateTime("2010-07-28 01:11:50");
$ref = new DateTime("2010-07-30 05:56:40");
$diff = $now->diff($ref);
printf('%d days, %d hours, %d minutes', $diff->d, $diff->h, $diff->i);
Run Code Online (Sandbox Code Playgroud)

版画 2 days, 4 hours, 44 minutes

http://docs.php.net/datetime.diff

编辑:但您也可以将问题更多地转移到数据库端,例如通过在表中存储过期日期/时间,然后执行像
... WHERE key='7gedufgweufg' AND expires<Now()
许多rdbms对日期/时间算术有合理/良好支持的查询.