Created
March 31, 2017 09:30
-
-
Save sayjeyhi/93986c7c4d4ce006349fb5d6c521f792 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<style> | |
html{direction:rtl;text-align:right;font-family: tahoma} | |
.isToday{background:#ccc;color:red} | |
</style> | |
<?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>"; | |
} | |
$today = date("Y-m-d", time()); | |
$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"; | |
$isTodayCheck = $today == $date ? "isToday" : ""; | |
$calendar .= "<td class='day $isTodayCheck' 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; | |
} | |
?> | |
<?php | |
// print Current Month | |
$currentDate = getdate(); | |
$month = $currentDate['mon']; | |
$year = $currentDate['year']; | |
echo build_calendar($month,$year); | |
?> | |
<hr/> | |
<?php | |
// print Month 1 of 2000 | |
$m1y2000=build_calendar(1,2000); | |
echo $m1y2000; | |
?> | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment