我有一个简单的问题,只需要验证,它是关于如何在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!";
}
这是简单的代码,首先,是将时间插入到表中的语法okay(CURTIME()的东西),也就是比较好了,结果存储在$ diff中会产生秒数吗?谢谢,抱歉,如果你认为这个问题是浪费时间的话。
答案 0 :(得分:3)
CURTIME()
只会给你时间,你可能想要NOW()
这是日期和时间。然后,您需要使用strtotime
将保存的值从数据库转换为自纪元以来的秒数。
答案 1 :(得分:1)
在您的查询中执行此操作:
$query = "SELECT id FROM time WHERE time + INTERVAL 5 MINUTES > NOW()";
没有结果,时间过去了。
MySQL具有极好的时间和日期处理功能。使用它们。
(我还在WHERE
子句中添加了一些额外的部分,如果你有多个记录,你可能会看错了。)
答案 2 :(得分:0)
由于CURTIME只是每天都有,而且我怀疑你希望你的功能能够覆盖几天的时间,我建议你使用NOW(),因为它会为你提供这种格式:
2012-11-06 09:39:34
答案 3 :(得分:0)