Home >Backend Development >PHP Tutorial >A simple way to create a calendar in PHP_php tips
The example in this article describes how to simply create a calendar in PHP. Share it with everyone for your reference, the details are as follows:
<?php function build_calendar($month,$year) { // Create array containing abbreviations of days of week. $daysOfWeek = array('S','M','T','W','T','F','S'); // What is the first day of the month in question? $firstDayOfMonth = mktime(0,0,0,$month,1,$year); // How many days does this month contain? $numberDays = date('t',$firstDayOfMonth); // Retrieve some information about the first day of the // month in question. $dateComponents = getdate($firstDayOfMonth); // What is the name of the month in question? $monthName = $dateComponents['month']; // What is the index value (0-6) of the first day of the // month in question. $dayOfWeek = $dateComponents['wday']; // Create the table tag opener and day headers $calendar = "<table class='calendar'>"; $calendar .= "<caption>$monthName $year</caption>"; $calendar .= "<tr>"; // Create the calendar headers foreach($daysOfWeek as $day) { $calendar .= "<th class='header'>$day</th>"; } // Create the rest of the calendar // Initiate the day counter, starting with the 1st. $currentDay = 1; $calendar .= "</tr><tr>"; // The variable $dayOfWeek is used to // ensure that the calendar // display consists of exactly 7 columns. if ($dayOfWeek > 0) { $calendar .= "<td colspan='$dayOfWeek'> </td>"; } $month = str_pad($month, 2, "0", STR_PAD_LEFT); while ($currentDay <= $numberDays) { // Seventh column (Saturday) reached. Start a new row. if ($dayOfWeek == 7) { $dayOfWeek = 0; $calendar .= "</tr><tr>"; } $currentDayRel = str_pad($currentDay, 2, "0", STR_PAD_LEFT); $date = "$year-$month-$currentDayRel"; $calendar .= "<td class='day' rel='$date'>$currentDay</td>"; // Increment counters $currentDay++; $dayOfWeek++; } // Complete the row of the last week in month, if necessary if ($dayOfWeek != 7) { $remainingDays = 7 - $dayOfWeek; $calendar .= "<td colspan='$remainingDays'> </td>"; } $calendar .= "</tr>"; $calendar .= "</table>"; return $calendar; } //调用方法 echo build_calendar(05,2016); ?>
The running results are as shown below:
For information about online date display, you can also refer to this site’s online tool:
Online perpetual calendar almanac flash version
Readers who are interested in more PHP-related content can check out the special topics of this site: "Summary of PHP date and time usage", "Summary of PHP mathematical operation skills", "Comprehensive collection of PHP array (Array) operation skills", "PHP object-oriented programming introductory tutorial", "php string (string) usage summary", "php mysql database operation introductory tutorial》and "php common database operation skills summary"
I hope this article will be helpful to everyone in PHP programming.