【发布时间】:2018-12-09 22:08:41
【问题描述】:
我正在尝试创建一个用户选择开始日期和时间的预订系统。系统根据最长的产品服务时间创建结束日期和时间。目前这一切都想通了。
我的数据库中有一个用于我的事件的表,其中包含:
vendor_id | user_id | start | end
开始列和结束列的类型为 DateTime。
在我的控制器中,我试图找出特定日期和时间是否可用,但由于某种原因,我无法让它显示时间重叠的项目。
这是我的控制器代码:
$items = $query->where('vendor_id', $user->vendor->id)->where('start', '<=', date('Y-m-d H:i:s', strtotime($start)))->whereDate('end', '>=', date('Y-m-d H:i:s', strtotime($end)))->get();
所以一些示例场景...
我在系统中有一个事件,其开始时间为 2019-01-01 13:00:00,结束时间为 2019-01-01 17:00:00.
如果我选择 2019-01-01 12:00:00 的开始时间和 2019-01-01 16:00:00 的结束时间,那么它通过了我上面的检查,但这些时间显然重叠了几个小时.
我正在尝试找到一种解决方案来提取项目,即使它们重叠,而不仅仅是它们的开始和结束时间符合特定检查。
感谢任何帮助。
【问题讨论】:
标签: php mysql laravel time eloquent