Php 检查用户输入是否在时间间隔内

Php 检查用户输入是否在时间间隔内,php,mysql,Php,Mysql,我有一个系统功能,用户向官员发送邀请。举例来说,这位官员在他的日程表上有一个为期3天的静修。在数据库中,它如下所示: +---------+------------+------------+--------+----------+ | name | date_start | date_end | time | time_end | +---------+------------+------------+--------+----------+ | Retreat | 2018-

我有一个系统功能,用户向官员发送邀请。举例来说,这位官员在他的日程表上有一个为期3天的静修。在数据库中,它如下所示:

+---------+------------+------------+--------+----------+
|  name   | date_start |  date_end  |  time  | time_end |
+---------+------------+------------+--------+----------+
| Retreat | 2018-01-16 | 2018-01-18 | 9:00AM | 12:00PM  |
| Retreat | 2018-01-17 | 2018-01-18 | 9:00AM | 12:00PM  |
| Retreat | 2018-01-18 | 2018-01-18 | 9:00AM | 12:00PM  |
+---------+------------+------------+--------+----------+
用户希望在2018-01-17至2018-01-19期间的上午10:00至11:00向官方发送为期两天的活动邀请。如果他建议的日期和时间在数据库中当前日期和时间之间,我如何拒绝他的输入

到目前为止,这就是我的工作

$q_date = mysqli_query($con, "SELECT * FROM `events` WHERE `date_start` = '$date' AND `time` = '$time_f' AND `pastor_id` = '$id'");
$count_date = mysqli_num_rows($q_date);
if ($count_date > 0) {
    echo "<p>Sorry, this time is occupied. Please select another schedule</p>";
}

任何帮助都将不胜感激

MySQL有以下条件:

SELECT * FROM `events` 
WHERE 
('$date' BETWEEN `date_start` AND `date_end`)
AND
('$time_f' BETWEEN `time` AND `time_end`)
AND `pastor_id` = '$id'

假设查询以前工作过,这将找到您要查找的内容。

嘿,欢迎使用stackoverflow!您的代码易受SQL注入攻击,不适合生产。考虑使用或如果你的代码库不是那么大,切换到它与更多的Web服务器兼容的MySQL:边注:为什么不使用DeaTimeType并省略最后2列,如果他提议的日期和时间在数据库中的当前日期和时间之间,我如何拒绝他的输入使用介于或>。。。我理解。好吧,如果你想走这条路,你不应该把时间存储为字符串,而是时间格式。字符串日期需要的资源比需要的更多。为了更加清晰,我觉得你应该编辑你的帖子,使其包含实际数据。这可能会对可能的答案产生影响。你试过下面给出的答案吗?如果它解决了,考虑接受它。如果没有,那么你应该告诉他们。记下这个答案!它的优点是执行时间更快