0% found this document useful (0 votes)
94 views6 pages

PHP Event Calendar Script

The document describes a PHP calendar class that can be used to display a monthly calendar with event information. The class constructs a calendar for a given date, allows adding events, and outputs the calendar as HTML. It includes methods to set the active month/year, add events, and return the calendar as a string. The example code shows how to include the class, add some sample events, and display the calendar on a web page along with some basic styling CSS.

Uploaded by

Swapnil Mandal
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
94 views6 pages

PHP Event Calendar Script

The document describes a PHP calendar class that can be used to display a monthly calendar with event information. The class constructs a calendar for a given date, allows adding events, and outputs the calendar as HTML. It includes methods to set the active month/year, add events, and return the calendar as a string. The example code shows how to include the class, add some sample events, and display the calendar on a web page along with some basic styling CSS.

Uploaded by

Swapnil Mandal
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 6

1.Calendar.

Php
……………………

<?php
class Calendar {

private $active_year, $active_month, $active_day;


private $events = [];

public function __construct($date = null) {


$this->active_year = $date != null ? date('Y', strtotime($date)) : date('Y');
$this->active_month = $date != null ? date('m', strtotime($date)) : date('m');
$this->active_day = $date != null ? date('d', strtotime($date)) : date('d');
}

public function add_event($txt, $date, $days = 1, $color = '') {


$color = $color ? ' ' . $color : $color;
$this->events[] = [$txt, $date, $days, $color];
}

public function __toString() {


$num_days = date('t', strtotime($this->active_day . '-' . $this->active_month . '-' . $this-
>active_year));
$num_days_last_month = date('j', strtotime('last day of previous month', strtotime($this-
>active_day . '-' . $this->active_month . '-' . $this->active_year)));
$days = [0 => 'Sun', 1 => 'Mon', 2 => 'Tue', 3 => 'Wed', 4 => 'Thu', 5 => 'Fri', 6 => 'Sat'];
$first_day_of_week = array_search(date('D', strtotime($this->active_year . '-' . $this-
>active_month . '-1')), $days);
$html = '<div class="calendar">';
$html .= '<div class="header">';
$html .= '<div class="month-year">';
$html .= date('F Y', strtotime($this->active_year . '-' . $this->active_month . '-' . $this-
>active_day));
$html .= '</div>';
$html .= '</div>';
$html .= '<div class="days">';
foreach ($days as $day) {
$html .= '
<div class="day_name">
' . $day . '
</div>
';
}
for ($i = $first_day_of_week; $i > 0; $i--) {
$html .= '
<div class="day_num ignore">
' . ($num_days_last_month-$i+1) . '
</div>
';
}
for ($i = 1; $i <= $num_days; $i++) {
$selected = '';
if ($i == $this->active_day) {
$selected = ' selected';
}
$html .= '<div class="day_num' . $selected . '">';
$html .= '<span>' . $i . '</span>';
foreach ($this->events as $event) {
for ($d = 0; $d <= ($event[2]-1); $d++) {
if (date('y-m-d', strtotime($this->active_year . '-' . $this->active_month . '-' . $i . '
-' . $d . ' day')) == date('y-m-d', strtotime($event[1]))) {
$html .= '<div class="event' . $event[3] . '">';
$html .= $event[0];
$html .= '</div>';
}
}
}
$html .= '</div>';
}
for ($i = 1; $i <= (42-$num_days-max($first_day_of_week, 0)); $i++) {
$html .= '
<div class="day_num ignore">
' . $i . '
</div>
';
}
$html .= '</div>';
$html .= '</div>';
return $html;
}

}
?>

___________________________________

2.Calendar.css
……………….

.calendar {
display: flex;
flex-flow: column;
}
.calendar .header .month-year {
font-size: 20px;
font-weight: bold;
color: #636e73;
padding: 20px 0;
}
.calendar .days {
display: flex;
flex-flow: wrap;
}
.calendar .days .day_name {
width: calc(100% / 7);
border-right: 1px solid #2c7aca;
padding: 20px;
text-transform: uppercase;
font-size: 12px;
font-weight: bold;
color: #818589;
color: #fff;
background-color: #448cd6;
}
.calendar .days .day_name:nth-child(7) {
border: none;
}
.calendar .days .day_num {
display: flex;
flex-flow: column;
width: calc(100% / 7);
border-right: 1px solid #e6e9ea;
border-bottom: 1px solid #e6e9ea;
padding: 15px;
font-weight: bold;
color: #7c878d;
cursor: pointer;
min-height: 100px;
}
.calendar .days .day_num span {
display: inline-flex;
width: 30px;
font-size: 14px;
}
.calendar .days .day_num .event {
margin-top: 10px;
font-weight: 500;
font-size: 14px;
padding: 3px 6px;
border-radius: 4px;
background-color: #f7c30d;
color: #fff;
word-wrap: break-word;
}
.calendar .days .day_num .event.green {
background-color: #51ce57;
}
.calendar .days .day_num .event.blue {
background-color: #518fce;
}
.calendar .days .day_num .event.red {
background-color: #ce5151;
}
.calendar .days .day_num:nth-child(7n+1) {
border-left: 1px solid #e6e9ea;
}
.calendar .days .day_num:hover {
background-color: #fdfdfd;
}
.calendar .days .day_num.ignore {
background-color: #fdfdfd;
color: #ced2d4;
cursor: inherit;
}
.calendar .days .day_num.selected {
background-color: #f1f2f3;
cursor: inherit;
}

___________________________________

3.Example.php
………………..

<?php
include 'Calendar.php';
$calendar = new Calendar('2021-02-02');
$calendar->add_event('Birthday', '2021-02-03', 1, 'green');
$calendar->add_event('Doctors', '2021-02-04', 1, 'red');
$calendar->add_event('Holiday', '2021-02-16', 7);
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Event Calendar</title>
<link href="style.css" rel="stylesheet" type="text/css">
<link href="calendar.css" rel="stylesheet" type="text/css">
</head>
<body>
<nav class="navtop">
<div>
<h1>Event Calendar</h1>
</div>
</nav>
<div class="content home">
<?=$calendar?>
</div>
</body>
</html>

___________________________________

4.Example.css
……………….

*{
box-sizing: border-box;
font-family: -apple-system, BlinkMacSystemFont, "segoe ui", roboto, oxygen, ubuntu,
cantarell, "fira sans", "droid sans", "helvetica neue", Arial, sans-serif;
font-size: 16px;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
body {
background-color: #FFFFFF;
margin: 0;
}
.navtop {
background-color: #3b4656;
height: 60px;
width: 100%;
border: 0;
}
.navtop div {
display: flex;
margin: 0 auto;
width: 800px;
height: 100%;
}
.navtop div h1, .navtop div a {
display: inline-flex;
align-items: center;
}
.navtop div h1 {
flex: 1;
font-size: 24px;
padding: 0;
margin: 0;
color: #ebedee;
font-weight: normal;
}
.navtop div a {
padding: 0 20px;
text-decoration: none;
color: #c4c8cc;
font-weight: bold;
}
.navtop div a i {
padding: 2px 8px 0 0;
}
.navtop div a:hover {
color: #ebedee;
}
.content {
width: 800px;
margin: 0 auto;
}
.content h2 {
margin: 0;
padding: 25px 0;
font-size: 22px;
border-bottom: 1px solid #ebebeb;
color: #666666;
}

You might also like