一段时间后隐藏物品[PHP / MySQL]

时间:2014-07-03 19:09:23

标签: php mysql time webpage

我希望在时间到期后隐藏这些项目,只有今天和将来的项目才会显示。

我现在有类似的代码,但它不起作用:

$result = mysql_query("SELECT * FROM table WHERE closing_date >= CURRENT_DATE()");
$numrow = mysql_num_rows($result);

在MYSQL中,我有以这种格式的closing_date:

  

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

所以现在如果时间到期,则不会在页面上显示。

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

Timeformat必须保持原样。

感谢您的帮助!

4 个答案:

答案 0 :(得分:1)

您需要设置cronjob,每天运行一次或每隔几分钟运行一次会隐藏这些项目的脚本。

您的脚本应该有此查询:

UPDATE table SET hide_column = 1 WHERE closing_date < CURRENT_DATE()

如果您不想隐藏任何内容,只需从今天抓取数据&amp;今天之后你需要知道你的closing_date列的类型是什么。如果datetime使用NOW()进行比较:

SELECT * FROM table WHERE closing_date >= NOW()

答案 1 :(得分:1)

CURRENT_DATE()只返回没有时间的日期。这就是为什么你的代码没有按照你的意愿工作的原因。你需要添加时间,例如:

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

答案 2 :(得分:0)

CURRENT_DATE()替换为NOW()

答案 3 :(得分:0)

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);