1

寻求一些帮助,为此苦苦挣扎了一段时间。

我有一个日期范围表:

"time_from" 2013-06-03 00:00:00, "time_till" 2013-07-03 00:00:00
"time_from" 2013-05-03 00:00:00, "time_till" 2013-06-03 00:00:00

然后我有一个表格,您可以在其中提交新的日期范围。

提交此表单时,我想检查新日期范围的任何部分是否与当前现有日期范围的任何部分不冲突。

谁能帮忙,我不介意这是在MySQLor中完成的PHP

谢谢

4

3 回答 3

1

您可以通过sql检查该行是否存在相同范围

select if(count(*) >0,'conflicts', 'does not conflict')
from yourTable
where ($startTime between time_from and time_till)
or ($endTime between time_from and time_till)

如果任何输入日期位于现有日期范围内,则会显示冲突,否则将导致不冲突

于 2013-07-03T08:19:14.177 回答
1

您可以使用 mysql 查询轻松完成此操作

select * from table where
$variable_start BETWEEN time_from AND time_till OR $variable_end BETWEEN time_from AND time_till

如果您的时间在您的日期范围之间,您将有行

于 2013-07-03T08:19:30.867 回答
0

假设在内部意味着存在冲突。

您需要检查每一行:

您的日期范围 START 不会在当前日期范围 START 之前,并且您的日期范围结束日期不会在当前日期范围 START 之后

您的日期范围 START 不会在当前日期范围 START 之前,并且您的日期范围结束日期不会在当前日期范围 END 之后

您的日期范围 START 不会在当前日期范围 END 之前,并且您的日期范围结束时间不会在当前日期范围 START 之后

您的日期范围 START 不会在当前日期范围 START 之后,并且您的日期范围结束日期不会在当前日期范围 END 之前

于 2013-07-03T08:19:31.630 回答