0 ? round($manualHours, 2) : null; } if ($start === null || $end === null || !preg_match('/^\d{2}:\d{2}$/', $start) || !preg_match('/^\d{2}:\d{2}$/', $end)) { return null; } [$startHour, $startMinute] = array_map('intval', explode(':', $start)); [$endHour, $endMinute] = array_map('intval', explode(':', $end)); if ($startHour > 23 || $endHour > 23 || $startMinute > 59 || $endMinute > 59) return null; $minutes = ($endHour * 60 + $endMinute) - ($startHour * 60 + $startMinute); return $minutes > 0 ? round($minutes / 60, 2) : null; }