Home  >  Article  >  Backend Development  >  A simple way to create a calendar in PHP_php tips

A simple way to create a calendar in PHP_php tips

WBOY
WBOYOriginal
2016-05-16 19:53:221229browse

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:

<&#63;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&#63;
  $firstDayOfMonth = mktime(0,0,0,$month,1,$year);
  // How many days does this month contain&#63;
  $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&#63;
  $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);
&#63;>

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

Web Perpetual Calendar

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.

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn