我希望在时间到期后隐藏这些项目,只有今天和将来的项目才会显示。
我现在有类似的代码,但它不起作用:
$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必须保持原样。
感谢您的帮助!
答案 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);