我有一个php网站,在这里我需要创建一个页面来输入学生的考试详情。一次考试有5个科目。每个科目都有考试日期,开始时间和结束时间
即。
Date: 02-nov-2012
Start time: 2.30 pm
End time: 4.30 pm
我必须检查考试日期时间的重复...即。如果一个科目有
,任何其他没有相似日期时间的科目Exam Date: 02-nov-2012
Start time: 3.00.pm
End date: 5.00 pm
必须避免。它无效 另一个主题有
Exam Date: 02-nov-2012
Start time: 9.00.am
End date: 2.00 pm
这是有效的
我认为很清楚......我不知道详细解释...... 我不知道在php中验证这个
答案 0 :(得分:0)
$errors = array();
for ($i = 0; $i < count($exams); $i++) {
for ($j = $i+1; $j < count($exams); $j++) {
if (($exams[$j]['start_time'] >= $exams[$i]['start_time'] && ($exams[$j]['start_time'] <= $exams[$i]['end_time']) ||
($exams[$j]['end_time'] >= $exams[$i]['start_time'] && ($exams[$j]['end_time'] <= $exams[$i]['end_time'])) {
$errors[] = "<li>Exams $i and $j overlap.</li>";
}
}
}
if ($errors) {
echo "There were conflicts:<br><ul>\n ", join("\n ", $errors), "\n</ul>\n";
} else {
echo "Congratulations, no conflicts!\n";
}