检查时间(用户输入)两次(两次查询之间)

时间:2019-05-13 09:24:18

标签: php

我想检查用户是否输入了已经存在的时间(开始,结束),或者与foreach中的时间有冲突。

我试图将现有时间放入数组中,以检查来自数组中数据的新用户数据,但没有成功:I

if(isset($_POST['submit'])){
    $mitarbeitername = $_POST['mitarbeiter'];
    //echo "Organisator: " .$mitarbeitername;

    $reservierungvon = $_POST['zeitstart'];
    //echo "Von: " .$reservierungvon;

    $reservierungbis = $_POST['zeitende'];
    //echo "Bis: " .$reservierungbis;
}

foreach($value as $value) {
    $startarray[] = $start = $value->Start->DateTime;($value);
}

$checkendtime = array();
foreach($value as $value) {
    $endarray[] = $start = $value->End->DateTime;($value);
}

if ($reservierungvon == $startarray || $reservierungbis == $endarray || $reservierungvon < $startarray && $endarray > $reservierungbis) {
    echo "conflict!";
} else {
    echo "no conflict!";
}

这是即时获取现有会议时间的场所:

foreach ($result->value as & $value) {
                $start = $value->Start->DateTime;
                $start = substr($start, 11, -11);
                $ende = $value->End->DateTime;
                $ende = substr($ende, 11, -11);
                $organisierer = $value->Organizer->EmailAddress->Name;
}

如果与现有会议没有任何冲突,则用户可以通过这种形式创建新会议:

<label for="psw"><br><b>Zeit der Reservierung:</b></label><br>
von <input type="time" name="timestart"> Uhr bis <input type="time" name="timeend"> Uhr <br>

如果能用用户的新时间检查出foreach时间,那将是很好的事情。

无论是否存在冲突,用户都会收到一条消息。这样他就可以纠正自己的时间。

感谢您的帮助! :)

1 个答案:

答案 0 :(得分:0)

您需要检查循环或以下情况:

对于每个现有间隔(B):

  1. 输入的间隔在B内开始
  2. 输入的间隔在B内结束
  3. 输入的间隔在B之前开始,在B之后结束

如果其中任何一个为TRUE,则存在冲突,否则就没有冲突。