需要通过多次预订来迭代DateTime约会

时间:2017-06-21 22:58:11

标签: php mysql datetime

我有一个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;
}

编辑:将约会添加到数据库表时。输入此人的姓名和日期时间作为约会记录。

0 个答案:

没有答案