php - PHP / Yii2 在注册前检查数据库中的至少 1 个位置是否有足够的时间空闲
问题描述
好的,我认为我完全错了...我尝试了一种简单的方法来做到这一点...
它仍然无法正常工作,但我认为它来自铭文中的日期时间(0000-00-00 00:00:00)和我的 array_of_time 中只有几个小时(00:00:00)
查看代码:如果有人可以帮助我处理这个''
$sessionsInside = Session::find()->where(['>=', 'start_date', $today])->orderby(['start_date'=>'ASC'])->all(); //session ex: 2018-09-09 9h00 to 11h45
$inscriptionsInside = Inscription::find()->where(['>=', 'day', $today])->orderby(['day'=>'ASC'])->all();
foreach ($sessionsInside as $session) {
$array_of_time = [];
$place_count = 2;
$session_id = $session->id;
$session_start_day = $session->start_date; // day of session
$session_start_time = strtotime ($session->start_time); //start time of sesion 9h00
$session_end_time = strtotime ($session->end_time); //end time of session 11h45
$session_start_daytime = $session_start_day.' '.date('H:i:s', $session_start_time);
$fifteen_mins = 15 * 60;
while ($session_start_time <= $session_end_time) {
$array_of_time[] = $session_start_time;
$session_start_time += $fifteen_mins;
}
foreach ($array_of_time as $start_time_session) {
$end_time_session = $start_time_session + $duration_test;
foreach ($inscriptionsInside as $inscription) {
if($inscription->start_time == $start_time_session){
// $array_of_time[] = unset($start_time_session);
$array_of_time = array_diff($array_of_time, $start_time_session);
}
elseif($inscription->start_time > $start_time_session){
if($inscription->start_time < $end_time_session){
$array_of_time = array_diff($array_of_time, $start_time_session);
}
}
elseif($inscription->start_time < $start_time_session){
if($inscription->end_time > $start_time_session){
$array_of_time = array_diff($array_of_time, $start_time_session);
}
}
}
}
echo '<br>'.$session_start_day.'<br><br>';
foreach ($array_of_time as $timeslot) {
echo date('H:i',$timeslot).'<br>';
}
}
解决方案
推荐阅读
- javascript - 如何在呈现网页时检查外部窗口是否已启动或恢复(非活动)?
- mysql - 使用 Objection.js 获取所有与 throw 多个表相关的数据
- asp.net-core - 为什么我要返回到 MVC 中的 POST 方法的 Viewmodel 返回 null ViewModel
- javascript - 如何使用 jquery 重新索引数组属性名称
- installation - 无法从“lxml”导入“etree”
- maven - Micronaut Swagger 多模块
- r - R tables::tabular() 使用Format() 摆脱scientifc和round
- node.js - Nodejs hana-client 连接池示例
- python - 接受一个数组并产生下一个数字的脚本
- powerbi - 我可以同时使用 Direct Query 和 CSV 发布 POWER BI 仪表板吗?