Php Programming Code Examples
Php > Date Time Code Examples
This is now an object, with its interface defined in comments at the beginning
This is now an object, with its interface defined in comments at the beginning
of the code. No hooks for graphics yet. I may take some time to do this.
<?php
class tableCalendar {
# Create an html calendar for a month.
# Interface:
# $calendar = new tableCalendar;
#
# Set necessary variables:
# $calendar->setDay($day); # Integer
# $calendar->setMonth($month); # Integer
# $calendar->setYear($year); # Integer
# $calendar->setFrameTarget($target_string); # String
# $calendar->setHrefString($href_string); # String
#
# $calendar->printCal(); # This'll print your table for you.
var $selectedDay, $selectedMonth, $selectedYear;
var $days;
var $frametarget, $href;
var $DEBUGGING_SET = 0;
function setDay ($day) {
$this->selectedDay = $day;
}
function setMonth ($month) {
$this->selectedMonth = $month;
}
function setYear ($year) {
$this->selectedYear = $year;
}
function setFrameTarget($target_string) {
$this->frametarget = "target = \"$target_string\"";
}
function setHref($href_string) {
$this->href = $href_string;
}
function setAndCheckDefaults () {
if (!$this->selectedDay ) {
$this->selectedDay = date( 'd');
}
if (!$this->selectedMonth) {
$this->selectedMonth = date( 'm');
}
if (!$this->selectedYear) {
$this->selectedYear = date( 'Y');
}
$this->days = array(0=> 'Sun',1=> 'Mon',2=> 'Tue',3=> 'Wed',
4=> 'Thu',5=> 'Fri',6=> 'Sat');
}
function printCal () {
$monthOrig;
$monthTest;
$monthName;
$firstday;
$dayRow;
$lastday = 31;
$this->setAndCheckDefaults(); # make sure we do the right thing(s)
# Find out the first day of the week!
$firstday = date( 'w',mktime(0,0,0,$this->selectedMonth,1,$this->selectedYear));
# have to perform a loop to test from 31 backwards,
# to see what the last day of the month is
$lastday = 31;
do {
$monthOrig = date( 'm',mktime(0,0,0,$this->selectedMonth,1,$this->selectedYear));
$monthTest = date( 'm',mktime(0,0,0,$this->selectedMonth,$lastday,$this->selectedYear));
if ($monthTest != $monthOrig) { $lastday -= 1; };
} while ($monthTest != $monthOrig);
$monthName = date( 'F',mktime(0,0,0,$this->selectedMonth,1,$this->selectedYear));
if($this->DEBUGGING_SET != 0) {
print( "<p>first day of the first week of $selectedMonth $selectedYear is $firstday (from 0 to 6) <p>\n");
print( "The last day of $selectedMonth $selectedYear is $lastday\n<p>");
}
$this->printTable($monthName, $firstday, $lastday);
}
function printHref($day) {
$href = '';
if($this->href) {
print( "<A HREF=\"$this->href?month=$this->selectedMonth&day=$day&year=$this->selectedYear\" $this-
>frametarget>$day</a>");
}
}
function printTable ($monthName, $firstDay, $lastDay) {
$dayRow = 0;
$day = 0;
$targetString;
$adjustedDay;
print( "<table bgcolor=\"#FFFFFF\">");
print( "<caption valign=\"center\"><b>$monthName $this->selectedYear</b></caption>");
print( "<tr>\n");
# Print days along the top.
for($i=0; $i<=6; $i++) {
print( "<td width=10%>".$this->days[$i]. "</td>\n");
}
print( "</tr>\n");
print( "<tr>\n");
while($dayRow < $firstDay) {
print( "<td><!-- This day in prior month --></td>");
$dayRow += 1;
}
while($day < $lastDay) {
if(($dayRow % 7) == 0) {
print( "</tr>\n<tr>\n");
}
$adjustedDay = $day+1;
print( "<td>");
$this->printHref($adjustedDay);
print( "</td>");
$day += 1;
$dayRow += 1;
}
print( "\n</tr>\n</table>\n");
}
}
?>