标题说明了一切......我不确定我的代码有什么问题..但它并不顺利,因为我想
<?php
//test this
$query = odbc_exec($conn, "SELECT * FROM changepass_req WHERE reqid = 1");
$reqdate = odbc_result($query, 'req_date');
$reqdatex = strtotime($reqdate);
$timenow = date("Y-m-d H:i:s");
$timenowx = strtotime($timenow);
if($timenowx <= $reqdatex + 86400) {
//Less than 24 hours
echo'Go a head, its not a day passed yet';
}
else {
//More than 24 hours
echo'Sorry, this request is expired!';
}
?>
数据库中的req_date
是varchar of datatype。感谢您的帮助
编辑:此时req_date数据采用此格式(Y-m-d H:i:s)
编辑2:var_dump($ reqdatexx)的返回在我的页面中显示如下:int(1370855859)
编辑3:这是我想要的概念.. 如果数据库时间在CURRENT TIME = 24小时之前或之前,则返回true ELSE //如果数据库时间在当前时间24小时后超过或通过 = return false
或者, 如果数据库时间= 2013 6/8 5:02 pm和当前时间= 2013 6/9 5:01 pm =返回TRUE 其他 //数据库时间= 2013 g / 6 5:02 pm和当前时间= 2013年6月9日下午5:03 =返回FALSE
答案 0 :(得分:1)
您好我不确定您想要什么,但对我来说,您似乎正在将时间与第二时间进行比较。$ timenow将以下列格式返回当前日期和时间。
mysql> SELECT NOW();
-> '2007-12-15 23:50:26'
mysql> SELECT NOW() + 0;
-> 20071215235026.000000
我建议你做以下事情。
测试他们是否在同一个日期,如果他们回应抱歉
如果不是那么 使用dateiff函数
mysql> SELECT DATEDIFF('2007-12-31 23:59:59','2007-12-30');
-> 1
mysql> SELECT DATEDIFF('2010-11-30 23:59:59','2010-12-31');
-> -31
如果它大于1那么你有超过24小时,如果它是1那么为了安全只是从使用提取的日期剥去时间部分然后比较当前时间是否更大在这种情况下你将有超过24小时。
实施例: MySQL的&GT; SELECT DATEDIFF('2007-12-31 23:59:59','2007-12-30 22:50:50'); - &GT; 1
在这里它返回1但不是24小时所以比较23:59:59和22:50:50因为22:50:50更小它不是24小时但是如果我们有
mysql> SELECT DATEDIFF('2007-12-31 21:59:59','2007-12-30 22:50:50');
-> 1
在这里比较21:59:59和22:50:50。由于22:50:50更大,我们有超过24小时。
请阅读此内容以获取详细信息 http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html
答案 1 :(得分:1)
如果你想检查,$ reqdatex从现在开始间隔+ -24小时,请使用以下条件:
<?php
//Mon, 10 Jun 2013 09:17:39 GMT
$reqdatex = 1370855859;
$timenowx = time();
if(($reqdatex <= $timenowx + 86400) and ($reqdatex >= $timenowx - 86400)) {
//$reqdatex is inside now +- 24 hours interval
echo'Go ahead';
}
else {
//not inside the interval
echo'Sorry';
}