How can PHP developers efficiently handle the display of available time slots for scheduling in a web application using PHP and SQL queries?

To efficiently handle the display of available time slots for scheduling in a web application using PHP and SQL queries, developers can query the database for existing appointments within a specified time range, then generate a list of available time slots based on the results. By comparing the existing appointments to a predefined list of time slots, developers can easily determine which time slots are available for scheduling.

// Assume $conn is the database connection object

// Define the start and end time for the time range
$start_time = '09:00:00';
$end_time = '17:00:00';

// Query the database for existing appointments within the time range
$query = "SELECT appointment_time FROM appointments WHERE appointment_date = '2022-01-01' AND appointment_time BETWEEN '$start_time' AND '$end_time'";
$result = mysqli_query($conn, $query);

// Generate a list of available time slots
$available_time_slots = array();
$interval = new DateInterval('PT30M'); // 30-minute time slots
$start = new DateTime($start_time);
$end = new DateTime($end_time);

while ($start < $end) {
    $time_slot = $start->format('H:i:s');
    if (!in_array($time_slot, $result)) {
        $available_time_slots[] = $time_slot;
    }
    $start->add($interval);
}

// Display the available time slots
foreach ($available_time_slots as $time_slot) {
    echo $time_slot . "<br>";
}