In the context of a reservation system, what are some best practices for handling date comparisons and availability checks in PHP code?

When handling date comparisons and availability checks in a reservation system, it is important to ensure that the dates are properly validated and compared to avoid conflicts and double bookings. One best practice is to use the DateTime class in PHP to handle date calculations and comparisons accurately.

// Example code for handling date comparisons and availability checks using DateTime class

// Check if a given date is within a specified range
function isDateInRange($date, $start, $end) {
    $dateObj = new DateTime($date);
    $startObj = new DateTime($start);
    $endObj = new DateTime($end);

    return ($dateObj >= $startObj && $dateObj <= $endObj);
}

// Example usage
$start_date = '2022-01-01';
$end_date = '2022-01-31';
$check_date = '2022-01-15';

if (isDateInRange($check_date, $start_date, $end_date)) {
    echo "Date is within range";
} else {
    echo "Date is not within range";
}