PHP / MySQLi代码仅列出当年的事件并忽略未来几年

时间:2016-11-18 13:46:10

标签: php mysqli

我已经获得了下面列出的代码。出于某种原因,它只列出了2016年的活动。当我在2017年结束的活动中,它没有显示它。

知道为什么吗?

    $currentdate = date('m-d-Y');

    $events_call = $eventsdb->query("
SELECT * FROM events WHERE start <= '". $currentdate ."' 
AND (end >= '". $currentdate ."' OR end = 0) ORDER BY end ASC");

我用mm-dd-yyyy格式格式化日期。例如:2016年11月18日

2 个答案:

答案 0 :(得分:1)

  

我用mm-dd-yyyy格式格式化日期。例如:2016年11月18日

PHP或MySQL就此而言,并不自动知道这些是日期,它只是将它们解释为数字字符串。所以11-17-2016大于01-01-2017(11,172,016 vs 01,012,017)...你可以在进行比较之前将格式更改为YYYY-MM-DD以解决问题,或者将日期转换为时间戳等...

答案 1 :(得分:1)

你到底想要什么?你想要结果BETWEEN 2个日期吗?如果是这样,请查看BETWEEN sql命令,如:

How do I query between two dates using MySQL?

但我不认为你可以用mm-dd-yyyy格式在mysql中存储日期信息。 Mysql接受yyyy-mm-dd格式。检查你的表结构,请使用日期格式吗?