我有一个MySql数据库,人们的名字是varchars,预约时间是DateTime对象。我需要创建一个函数来返回数据库中找到的下一个可用时隙(DateTime格式),我将使用它来为那个时段安排人员。
约会仅在周二和周三进行。无论是周二还是周三,上午9点都可以看到4个人,上午10:30可以看到2个人。
此函数返回为给定时间段(DateTime)预订的人数。
function getTimeSlotCount($dateTime)
{
// finds out how many people are scheduled for the given datetime
global $db;
$query = "SELECT * FROM appointments
WHERE AppointmentTime = :dateTime
ORDER BY AppointmentTime";
$statement = $db->prepare($query);
$statement->bindValue(':dateTime', $dateTime);
$statement->execute();
$count = $statement->rowCount();
$statement->closeCursor();
#var_dump($count);
return $count;
}
我计划使用do while循环来迭代时隙。但我不知道如何迭代使用DateTime提到的约会时间。另外如何比较日期时间与特定时间的时间部分?
function getNextAvailableTimeSlot()
{
$maxFor9am = 4;
$maxFor1030am = 2;
$isAvailableSlotFound = false;
do {
// How Do I: Assign next Timeslot to $AppointmentTime;
$numBooked = getTimeSlotCount($AppointmentTime)
if ($numBooked >= $maxFor9am && $HowdoIGetTimeFromAppointmentTime == 9am)
continue;
else if ($numBooked >= 2 && $HowdoIGetTimeFromAppointmentTime == 1030am)
continue;
else
$isAvailableSlotFound == true;
} while ($isAvailableSlotFound == false);
return $AppointmentTime;
}
编辑:将约会添加到数据库表时。输入此人的姓名和日期时间作为约会记录。