How to Create a Calendar in PHP
How to Create a Calendar in PHP
This article will teach you how to make a calendar in PHP. Here list some free PHP calendar scripts. Or you can directly into the site PHPKode.com for more free PHP Tutorials.
Steps

Collect the necessary information which is important to display the actual month, and highlight the actual day. Besides this, you want to display the actual month and year as well. To do this you'll need 3 special day inputs:the actual day, the first day of the actual month, the last day of the actual month

Determine what day was the first day, how long is the month, and, of course, which is the actual day, with the above information.

Use the PHP built-in function: getdate(). Without parameters, this function returns the actual day information in an array as follows: 01 Array 02 ( 03 [seconds] => 40 04 [minutes] => 58 05 [hours] => 21 06 [mday] => 17 07 [wday] => 2 08 [mon] => 6 09 [year] => 2003 10 [yday] => 167 11 [weekday] => Tuesday 12 [month] => June 13 [0] => 1055901520 14 ) To get the last day of the month with get date we need to try to get the 0. day of the next month. So the code to get the information looks like this: 1 2 $today = getdate(); 3 $firstDay= getdate(mktime(0,0,0,$today['mon'],1,$today['year'])); 4 $lastDay = getdate(mktime(0,0,0,$today['mon']+1,0,$today['year'])); 5 ?> Step 3.To display a calendar we need a table with 7 columns for the days of the week. The number of lines depending on the number of days and the first day of the month. However we need a header line with month and year information, a subheader line with the name of the days. 1 2 // Create a table with the necessary header informations 3 echo'';"; 4 echo' '.$today['month']." - ".$today['year']." '; 5 echo' '; 6 echo' Mo Tu We Th '; 7 echo' Fr Sa Su 8 ?> Create a Calendar in PHP Step 3.jpg Now that you have the header of the table, fill the first row. It is not so easy as you cannot just write 1 in the first cell, 2 in the second and so on. It only works if the first day of the month was Monday, but what if not? To decide this we need the day item from the firstDay array. With this information we can fill the cells with a space if needed. The code to do this is the follows: 01 '; 02 echo' 03 for($i=1;$i<$firstDay['wday'];$i++){ '; 04 echo' 05 } 06 $actday= 0; 07 for($i=$firstDay['wday'];$i<=7;$i++){ 08 $actday++; "; 09 echo" $actday 10 } '; 11 echo' 12 ?> Create a Calendar in PHP Step 4.jpg As next step we need to fill to following lines. It is a bit easier, we only need to know how many full week we have and fill some table rows as follows: 01 02 $fullWeeks= floor(($lastDay['mday']-$actday)/7); 03 04 for($i=0;$i<$fullWeeks;$i++){ '; 05 echo' 06 for($j=0;$j<7;$j++){ 07 $actday++; "; 08 echo" $actday 09 } '; 10 echo' 11 } 12 13 ?> Create a Calendar in PHP Step 5.jpg As semi final step we need to add the rest of the month to the last line. In this case it is quite easy: 01 02 if($actday< $lastDay['mday']){ '; 03 echo' 04 for($i=0; $i<7;$i++){ 05 $actday++; 06 if($actday<= $lastDay['mday']){ "; 07 echo" $actday 08 } 09 else{ '; 10 echo' 11 } 12 } '; 13 echo' 14 } 15 ?> Step 7.To make the calendar little bit nicer we will introduce some CSS design. The CSS file is very simple: 01 table { 02 width:210px; 03 border:0pxsolid#888; 04 border-collapse:collapse; 05 } 06 td { 07 width:30px; 08 border-collpase:collpase; 09 border:1pxsolid#888; 10 text-align:right; 11 padding-right:5px; 12 } 13 .days{ 14 background-color: #F1F3F5; 15 } 16 th { 17 border-collpase:collpase; 18 border:1pxsolid#888; 19 background-color: #E9ECEF; 20 } 21 .actday{ 22 background-color: #c22; 23 font-weight:bold; 24 } Create a Calendar in PHP Step 6.jpg The complete code using the CSS is the following: 01 02 03 04 # "style/style.css"rel="stylesheet"type="text/css"/> 05 06 07 08 functionshowCalendar(){ 09 // Get key day informations. 10 // We need the first and last day of the month and the actual day 11 $today = getdate(); 12 $firstDay= getdate(mktime(0,0,0,$today['mon'],1,$today['year'])); 13 $lastDay = getdate(mktime(0,0,0,$today['mon']+1,0,$today['year'])); 14 15 // Create a table with the necessary header informations 16 echo'';"; 17 echo' '.$today['month']." - ".$today['year']." '; 18 echo' '; 19 echo' Mo Tu We Th '; 20 echo' Fr Sa Su 21 22 // Display the first calendar row with correct positioning '; 23 echo' 24 for($i=1;$i<$firstDay['wday'];$i++){ '; 25 echo' 26 } 27 $actday= 0; 28 for($i=$firstDay['wday'];$i<=7;$i++){ 29 $actday++; 30 if($actday== $today['mday']) { 31 $class= ' class="actday"'; 32 } else{ 33 $class= ; 34 } "; 35 echo"$actday 36 } '; 37 echo' 38 39 //Get how many complete weeks are in the actual month 40 $fullWeeks= floor(($lastDay['mday']-$actday)/7); 41 for($i=0;$i<$fullWeeks;$i++){ '; 42 echo' 43 for($j=0;$j<7;$j++){ 44 $actday++; 45 if($actday== $today['mday']) { 46 $class= ' class="actday"'; 47 } else{ 48 $class= ; 49 } "; 50 echo"$actday 51 } '; 52 echo' 53 } 54 55 //Now display the rest of the month 56 if($actday< $lastDay['mday']){ '; 57 echo' 58 for($i=0; $i<7;$i++){ 59 $actday++; 60 if($actday== $today['mday']) { 61 $class= ' class="actday"'; 62 } else{ 63 $class= ; 64 } 65 66 if($actday<= $lastDay['mday']){ "; 67 echo"$actday 68 } 69 else{ '; 70 echo' 71 } 72 } '; 73 echo' 74 } 75 echo' '; 76 } 77 showCalendar(); 78 ?> 79 80 You Might Also LikeUse Awesome ScreenshotHow toUse Awesome ScreenshotLog in to WeChatHow toLog in to WeChatCall Someone on a ComputerHow toCall Someone on a ComputerUse ClubhouseThe Beginner's Guide on How to Use Clubhouse (& Host Your Own Room)Change Cameo SelfieChange Your Cameos Selfie in Snapchat: 2 Simple MethodsCopy a QR Code on AndroidHow toCopy a QR Code on AndroidRecover Deleted Messages in WhatsAppHow toRecover Deleted Messages in WhatsAppFind an Office Product KeyHow toFind an Office Product KeyContact WhatsAppHow toContact WhatsAppSelect Multiple Files on Windows 11How toSelect Multiple Files on Windows 11Create Folders in Google DocsHow toCreate Folders in Google DocsUse Microsoft WhiteboardHow toUse Microsoft WhiteboardInvite People to ClubhouseHow to Invite People to Clubhouse (Plus, How Many Invites You Get)Clear RAM on MacHow toClear RAM on MacAdvertisement

What's your reaction?

Comments

https://popochek.com/assets/images/user-avatar-s.jpg

0 comment

Write the first comment for this!