PHPBuilder - Building a PHP Calender



RSS Twitter
Articles Php Gtk

Building a PHP Calender

by: PHP Builder Staff
|
July 28, 2009

Introduction
Today we are going to build a functional calender using PHP. About a year ago I was given the task of implementing an events calender on a website. The customer was not a fan of javascript or ajax, and insisted on a PHP-only implementation. That made things rather interesting. Gone were all my dreams of a quick implementation with a jQuery datepicker. Gone were any thoughts of simplicity whatsoever, or so I thought. Then it struck me. What was a calender but just a looping number system? The more I thought about it the more simple it became. At the end of the day, with a little research into PHP's date functions I had come up with something that actually worked. The working example can be downloaded here.
We begin by setting a few environmental variables. Obviously we need to know the URL to our script, and since we are dealing with a calender we also need to know things about the date we are at. What we will be doing here is checking if a variable is set in the URL, telling us what year, month and day we are looking for, otherwise we will just default to this year, this month and today.

// set the script location
$self = $_SERVER['PHP_SELF'];

// check if a month variable has been set in the url, else use PHP's date() function to set the current month.
if(isset($_GET['month'])):
    $month = $_GET['month'];
elseif(isset($_GET['viewmonth'])):
    $month = $_GET['viewmonth'];
else: $month = date('m');
endif;

Now we check if a year variable is set in the URL, else use PHP's date() function to set the current year if the current year is not set in the URL.

if(isset($_GET['year'])):
    $year = $_GET['year'];
elseif(isset($_GET['viewyear'])):
    $year = $_GET['viewyear'];
else: $year = date('Y');
endif;


1
|
2
Next Page »

Comment and Contribute

Your comment has been submitted and is pending approval.

Author:

Comment:



Comment:

(Maximum characters: 1200). You have characters left.