javascript - Timekeeping System: Plot schedule for time in and time out frame within the same day is not working

one text

I am Creating a Timekeeping System and I have a problem on plotting schedules with the same date for the time in and time out of the employee. When I do the plotting it exceeds the timeframe and is plotted too for the next day. The plotting for different dates for the time in and time out of employees works just fine. How should I do the condition for plotting schedules with the same date? For example, the time is on September 10, 9 pm and the time out is on September 10, 11 pm. A snap of my code is posted below.

 if(!empty($_GET['department']) && !empty($_GET['date']) && !empty($_GET['breaks']) && !empty($_GET['tl'])) {
    require("../includes/config.php");
    require("./timeclass.php");

    $department = $_GET['department'];
    $date = $_GET['date'];
    $breaks = $_GET['breaks'];
    $team_lead = $_GET['tl'];
    $package = [];
    $result = mysqli_query($conn, "SELECT id, fName, lName, dialer FROM employee_profile WHERE departmentID = '$department'");

    while($user = mysqli_fetch_assoc($result)) {
      $user_id = $user['id'];
      $filter_user_query = "SELECT id, agentID, time_in_spec, time_out_spec, time_in, time_out, datei, breaks, day_type
                           FROM shift_schedule WHERE agentID = '$user_id' AND DATE(datei) = '$date'";
      $filter_result = mysqli_query($conn, $filter_user_query);

      if(mysqli_num_rows($filter_result)) {
        $user_result = mysqli_fetch_assoc($filter_result);
        $user_result['name'] = '(' . $user['id'] . ') ' . $user['fName'] . ' ' . $user['lName'];

        if($breaks == 'true') {
          if(!empty($user_result['time_in']) && !empty($user_result['time_out'])) {
            $user_result['time_i'] = (int)date('h', strtotime('-1 hour', strtotime($user_result['time_in'])));
            $time_in_mer = explode(" ", $user_result['time_in'])[1];
            $time_out_mer = explode(" ", $user_result['time_out'])[1];

            if($time_in_mer == $time_out_mer) {
              $time_interval = abs((strtotime($user_result['time_in']) - strtotime($user_result['time_out'])) / 3600);
            } else if($time_in_mer == 'AM' && $time_out_mer == 'PM') {
              $time_interval = abs((strtotime($user_result['time_in']) - strtotime($user_result['time_out'])) / 3600);
            } else {
              $time_interval = abs(((strtotime($user_result['time_in']) - strtotime($user_result['time_out'])) / 3600) - 24);
            }

            $user_result['time_int'] = (int)$time_interval + 2;

            if(empty($user_result['time_in_spec'])) {
              $user_result['time_in'] = date('Y-m-d H:i', strtotime($user_result['datei'] . ' ' . $user_result['time_in']));
            } else {
              $user_result['time_in'] = $user_result['time_in_spec'];
            }

            if(empty($user_result['time_out_spec'])) {
              $user_result['time_out'] = date('Y-m-d H:i', strtotime('+1 days', strtotime($user_result['datei'] . ' ' . $user_result['time_out'])));
            } else {
              $user_result['time_out'] = $user_result['time_out_spec'];
            }

This is the code for my plotting of schedules but it does not work when I'm plotting schedules within the same date for its time in and time out. Only works when time in and time out are on different dates. I am struggling in creating the condition for the same date time out and time in

Source