Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/231.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 检查两次之间的时差?_Php_Mysql_Datetime - Fatal编程技术网

Php 检查两次之间的时差?

Php 检查两次之间的时差?,php,mysql,datetime,Php,Mysql,Datetime,可能重复: 我有一个MySQL表,其中有一列some_column。此列设置为datetime,更新后将更新为NOW 我要做的是查询db,即某个列的值,并检查其中的内容与查询时的时间之间的时间差。我想看看两个多小时过去了没有 如何使用PHP实现这一点?还是用MySQL来实现这一点?看看TIMEDIFF函数 看看TIMEDIFF函数 或者,如果您试图返回两个多小时前更新的行: SELECT * FROM `table` WHERE `some_column` < DATE_ADD(NOW(

可能重复:

我有一个MySQL表,其中有一列some_column。此列设置为datetime,更新后将更新为NOW

我要做的是查询db,即某个列的值,并检查其中的内容与查询时的时间之间的时间差。我想看看两个多小时过去了没有

如何使用PHP实现这一点?还是用MySQL来实现这一点?

看看TIMEDIFF函数

看看TIMEDIFF函数

或者,如果您试图返回两个多小时前更新的行:

SELECT * FROM `table` WHERE `some_column` < DATE_ADD(NOW(),INTERVAL -2 HOUR)
或者,如果您试图返回两个多小时前更新的行:

SELECT * FROM `table` WHERE `some_column` < DATE_ADD(NOW(),INTERVAL -2 HOUR)

我只是想看看是否两个多小时过去了,如果是这样,我将用新数据更新所有列:那么这正是您要查找的内容。如果超过2小时或更长时间,则查询返回的字段0将为1;否则为0。您可以使用AS为其指定一个名称,例如,选择IFTIMEDIFNOW、某些列>'02:00:00',1,0作为比表中更多的名称。然后您将获取$row['MORETHEN']和$row[0]。@qualcuno-因此,如果我以这种方式使用它:$sql=SELECT IFTIMEDIFNOW,last_update>'02:00:00',1,0比产品中的多;如果$stmt=$this->connect->prepare$sql{$stmt->execute;$stmt->bind_result$time;$stmt->fetch;$stmt->close;}否则{return false;}我会得到什么?我什么也不想:我只是想得到那个时差,但我似乎无法做到。$stmt=$pdo->querySELECT IFTIMEDIFFNOW,last_update>'02:00:00',1,0 FROM products$时间=BOOL$stmt->fetchColumn0$stmt->closeCursor;我只是想看看是否两个多小时过去了,如果是这样,我将用新数据更新所有列:那么这正是您要查找的内容。如果超过2小时或更长时间,则查询返回的字段0将为1;否则为0。您可以使用AS为其指定一个名称,例如,选择IFTIMEDIFNOW、某些列>'02:00:00',1,0作为比表中更多的名称。然后您将获取$row['MORETHEN']和$row[0]。@qualcuno-因此,如果我以这种方式使用它:$sql=SELECT IFTIMEDIFNOW,last_update>'02:00:00',1,0比产品中的多;如果$stmt=$this->connect->prepare$sql{$stmt->execute;$stmt->bind_result$time;$stmt->fetch;$stmt->close;}否则{return false;}我会得到什么?我什么也不想:我只是想得到那个时差,但我似乎无法做到。$stmt=$pdo->querySELECT IFTIMEDIFFNOW,last_update>'02:00:00',1,0 FROM products$时间=BOOL$stmt->fetchColumn0$stmt->closeCursor;好的,这个似乎更适合我。好的,这个似乎更适合我me@hakre-虽然几乎是同一件事,但却不在同一个上下文中。@hakre-没问题,我只是没有找到那个问题,我找到了另一个问题,但是没有你贴的那么接近:@hakre-虽然几乎是同一件事,但它不在同一个上下文中。@hakre-没问题,我只是没有找到那个问题,我找到了其他问题,但没有你贴的那么接近:
<?php 

$time = // Run query to get datetime value from db

$time = strtotime($time);

$dif = time()-$time;

$dif = date('H', $dif);

if($dif >= 2) 
{
    // Do something
}

?>