Php 如何减去两个日期和时间得到差分

Php 如何减去两个日期和时间得到差分,php,datetime,Php,Datetime,我必须发送一封电子邮件,当一个用户注册电子邮件包含一个链接,六小时后变得无效 当发送电子邮件时,我使用类型为“datetime”的字段emailSentDate更新数据库 现在我得到了当前的日期和时间,并且使用了与db中相同的格式。现在我想发现这两个日期和时间的差值是否为6小时,这样我就可以使链接无效,但我不知道怎么做 我的代码是这样的,我正在使用db的硬编码值,只是举个例子 $current_date_time=date("Y-m-d h:i:s"); $current=explode(" "

我必须发送一封电子邮件,当一个用户注册电子邮件包含一个链接,六小时后变得无效 当发送电子邮件时,我使用类型为“datetime”的字段emailSentDate更新数据库 现在我得到了当前的日期和时间,并且使用了与db中相同的格式。现在我想发现这两个日期和时间的差值是否为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];

我不知道如何继续plz help(plz帮助)

这可能是您问题的解决方案->

我宁愿使用时间戳:将“time()”返回的值作为“savedTime”保存到数据库中(这是以秒为单位的时间戳)。当你检查你的六个小时时,从“time()”中减去这个数字

if((time()-savedTime)>6*3600)
//超过6小时前


“从savedTime<”所在的表中选择。(time()-6*3600)
您可以将两个日期转换为1969年12月31日午夜以来的等效秒数。由此,您可以轻松推断两个日期之间经过的时间量。要做到这一点,您可以使用或


祝您一切顺利。

$hoursDiff=(time()-strotime(“2010-07-30 13:11:50”)/(60*60)

请看,从保存的时间日期中减去当前的时间日期,结果将以小时为单位,是吗?嘿,它在为同一天制造问题,假设我必须找到同一天的差异,结果为负值$hoursDiff=(time()-strotime(“2010-07-30 13:11:50”)/(60*60);这段代码给出了否定的结果你能帮我吗?这是真的吗?我不确定它是否回答了这个问题,但这是我一直在寻找的答案。嗯,这似乎不适用于所有版本的PHP。我没有
diff()
方法……没错。手册上写着2009年6月发布的
(PHP5>=5.3.0)
我知道,疯狂:-/我想我应该改变我的主机提供商。。。我有5.2.x
<?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);