Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/291.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 - Fatal编程技术网

Php 将时间存储到数据库并与当前时间进行比较

Php 将时间存储到数据库并与当前时间进行比较,php,mysql,Php,Mysql,我有一个简单的问题,只是需要验证,关于时间是如何存储在mysql中的,下面是我如何存储它的: if(isset($_SESSION['user'])) { $u_id=$_SESSION['user']; //insert current time to db, i set the type of time to TIME $query="INSERT INTO time(id,u_id,time) VALUES('NULL','".$u_id."',CURTIME())"; mysql_

我有一个简单的问题,只是需要验证,关于时间是如何存储在mysql中的,下面是我如何存储它的:

  if(isset($_SESSION['user']))
{
$u_id=$_SESSION['user'];
//insert current time to db, i set the type of time to TIME 
$query="INSERT INTO time(id,u_id,time) VALUES('NULL','".$u_id."',CURTIME())";
mysql_query($query);
}
这就是我存储它的方式,现在我还需要将它与值进行比较,稍后:

 //set current time
$curr_time=time();
//set maximum time to 5min
$max=300; 
//get previous time from db
$query="SELECT * FROM time";
$result=mysql_query($query);
$row=mysql_fetch_array($result); 
$prev_time=$row['time'];
//get difference in time
$diff=$curr_time-$prev_time;
//if max time is surpassed
if($diff>$max)
{
  echo "maximum time surpassed!";

    }  
这是一个简单的代码,首先是将时间插入到表中的语法,好的(CURTIME()的东西),比较也很好,存储在$diff中的结果会产生秒数吗?谢谢,如果您认为这个问题是浪费时间,那么很抱歉

CURTIME()
只会给你时间,你可能想要
NOW()
这是日期和时间。然后,您需要使用
strotime
将数据库中保存的值转换为自历元起的秒数。

CURTIME()
只会给您时间,您可能需要
NOW()
这是日期和时间。然后,您需要使用
strotime
将数据库中保存的值转换为自历元起的秒数。

在查询中执行此操作:

 $query = "SELECT id FROM time WHERE time + INTERVAL 5 MINUTES > NOW()";
是没有结果,时间已经过去了

MySQL具有极好的时间和日期处理功能。使用它们

(我还想在
WHERE
子句中添加一些额外的部分,如果您有多条记录,您可能会看到错误的记录。)

在查询中这样做:

 $query = "SELECT id FROM time WHERE time + INTERVAL 5 MINUTES > NOW()";
是没有结果,时间已经过去了

MySQL具有极好的时间和日期处理功能。使用它们


(我还想在
WHERE
子句中添加一些额外的部分,如果您有多条记录,您可能会看到错误的记录。)

因为CURTIME只是每天一次,我怀疑您希望您的函数覆盖几天的时间跨度,我建议您改用NOW(),因为它提供了以下格式:


2012-11-06 09:39:34

因为CURTIME只在每天的基础上运行,我怀疑您希望您的函数能够在几天内覆盖跨度,因此我建议您使用NOW(),因为它提供了以下格式:

 also is the comparison fine, will the result stored in $diff yield seconds?
2012-11-06 09:39:34

 also is the comparison fine, will the result stored in $diff yield seconds?
在PHP中,不能直接比较mysql CURTIME()和time()函数

例如:

在MySql中:

只有时间会回来

select CURTIME();
+-----------+
| CURTIME() |
+-----------+
| 14:15:11  |
+-----------+
在PHP中

将返回当前Unix时间戳

echo time();
1352191547
看看斯贝里对同情的回答

在PHP中,不能直接比较mysql CURTIME()和time()函数

例如:

在MySql中:

只有时间会回来

select CURTIME();
+-----------+
| CURTIME() |
+-----------+
| 14:15:11  |
+-----------+
在PHP中

将返回当前Unix时间戳

echo time();
1352191547

看看斯贝里对同情的回答。

你可以使用时间戳(从纪元算起的秒数)来轻松完成这项工作。你可以使用时间戳(从纪元算起的秒数)来轻松完成这项工作。谢谢,我会的,我只需要时间来完成我正在做的事情,非常感谢。谢谢,我会的,我只需要时间来完成我正在做的事情,非常感谢。