在一段时间后隐藏项目[PHP/MySQL]

在一段时间后隐藏项目[PHP/MySQL],php,mysql,time,webpage,Php,Mysql,Time,Webpage,我希望项目隐藏后的时间到期,只有今天和未来的项目将显示 我现在有这样的代码,但它不起作用: $result = mysql_query("SELECT * FROM table WHERE closing_date >= CURRENT_DATE()"); $numrow = mysql_num_rows($result); 在MYSQL中,我有以下格式的截止日期: 样本:2014-07-03 20:11:26 所以现在若时间到期,项目将不会显示在页面上 代码不需要工作我尝试了很多解决方

我希望项目隐藏后的时间到期,只有今天和未来的项目将显示

我现在有这样的代码,但它不起作用:

$result = mysql_query("SELECT * FROM table WHERE closing_date >= CURRENT_DATE()");
$numrow = mysql_num_rows($result);
在MYSQL中,我有以下格式的截止日期:

样本:2014-07-03 20:11:26

所以现在若时间到期,项目将不会显示在页面上

代码不需要工作我尝试了很多解决方案,但没有一个不起作用:(

时间格式必须保持不变


感谢您的帮助!

您需要设置
cronjob
,它将每天运行一次或每隔几分钟运行一次,并运行一个脚本来隐藏这些项目

您的脚本应具有以下查询:

UPDATE table SET hide_column = 1 WHERE closing_date < CURRENT_DATE()
CURRENT_DATE()只返回没有时间的日期。这就是为什么您的代码不能按您希望的方式工作。您需要添加时间,例如:

$result = mysql_query("SELECT * FROM table WHERE closing_date >= CONCAT(CURDATE(), ' ', CURTIME())");
$numrow = mysql_num_rows($result);
CURRENT_DATE()
替换为
NOW()

CURRENTDATE()的格式为1997-12-15。如果您的格式为2014-07-03 20:11:26,您可以执行类似操作

$currentDate = date(Y-m-d G:i:s);
$result = mysql_query("SELECT * FROM table WHERE closing_date >=" . $currentDate);
$numrow = mysql_num_rows($result);

不起作用怎么办?这个查询失败了?你出错了?你得到了错误的结果?基本上是一样的,但问题中显示的问题更好。太好了。祝你的项目好运
$currentDate = date(Y-m-d G:i:s);
$result = mysql_query("SELECT * FROM table WHERE closing_date >=" . $currentDate);
$numrow = mysql_num_rows($result);