How can PHP be used to create a calendar that changes months with JavaScript interactions?

To create a calendar that changes months with JavaScript interactions, you can use PHP to generate the initial calendar layout and then use JavaScript to handle the month-changing functionality. PHP can be used to dynamically generate the calendar structure based on the current month and year, and JavaScript can be used to update the calendar when the user navigates to a different month.

<?php
$month = isset($_GET['month']) ? $_GET['month'] : date('m');
$year = isset($_GET['year']) ? $_GET['year'] : date('Y');

echo "<div id='calendar'>";
echo "<h2>{$month}/{$year}</h2>";

// Generate calendar layout using PHP

echo "</div>";
?>

<script>
function changeMonth(direction) {
    let currentMonth = <?php echo $month; ?>;
    let currentYear = <?php echo $year; ?>;
    
    if(direction === 'next') {
        currentMonth++;
        if(currentMonth > 12) {
            currentMonth = 1;
            currentYear++;
        }
    } else if(direction === 'prev') {
        currentMonth--;
        if(currentMonth < 1) {
            currentMonth = 12;
            currentYear--;
        }
    }
    
    window.location.href = `calendar.php?month=${currentMonth}&year=${currentYear}`;
}
</script>