Hello,
I just finished
writing a basic calendar script... I wanted to pass it out to everyone here...
maybe someone could use it... or, even better optimize it.. .and maybe share
that with me.
<?php
function
Cal_Month()
{
// Get Today's Date
$todays_date = getdate();
// Determine what month to display
if(isset($_GET['month']))
{
$resolve_time = "1 ".$_GET['month']." ".$_GET['year'];
$resolve_first_day_of_month = strtotime($resolve_time);
$resolved_date = getdate($resolve_first_day_of_month);
}
else
{ $resolved_date = $todays_date; }
// if this is the current month - say it's okay to mark today on the calendar
if($todays_date['year'] == $resolved_date['year'] && $todays_date['month'] == $resolved_date['month'])
{ $mark_today_on_calendar = TRUE; }
{
// Get Today's Date
$todays_date = getdate();
// Determine what month to display
if(isset($_GET['month']))
{
$resolve_time = "1 ".$_GET['month']." ".$_GET['year'];
$resolve_first_day_of_month = strtotime($resolve_time);
$resolved_date = getdate($resolve_first_day_of_month);
}
else
{ $resolved_date = $todays_date; }
// if this is the current month - say it's okay to mark today on the calendar
if($todays_date['year'] == $resolved_date['year'] && $todays_date['month'] == $resolved_date['month'])
{ $mark_today_on_calendar = TRUE; }
// HOW
MANY DAYS ARE IN THIS MONTH
$days_in_current_month = cal_days_in_month(CAL_GREGORIAN, $resolved_date['mon'], $resolved_date['year']);
// STRING TO START THE CALENDAR ON THE FIRST DAY OF THE MONTH
$show_month = $resolved_date['month'];
$show_year = $resolved_date['year'];
// Get Info for Current Displayed Month
$string_time = "1 ".$show_month." ".$show_year;
$first_day_of_month = strtotime($string_time);
$first_day = getdate($first_day_of_month); //**************************
$the_first_day_of_the_month = getdate($first_day_of_month); // Starts from the 1st
$num_days_week = 7;
$num_days_in_month = cal_days_in_month(CAL_GREGORIAN, $resolved_date['mon'], $resolved_date['year']);
// Get info for NEXT month
$show_next = strtotime("+1 Month", $first_day_of_month);
$show_next_month_first_day = getdate($show_next);
// Get info for PREV month
$show_prev = strtotime("-1 Month", $first_day_of_month);
$show_prev_month_first_day = getdate($show_prev);
$next_month = $show_next_month_first_day['month'];
$next_year = $show_next_month_first_day['year'];
$prev_month = $show_prev_month_first_day['month'];
$prev_year = $show_prev_month_first_day['year'];
$link_next_month = "<a href="" Month </a>";
$link_prev_month = "<a href="" Month </a>";
// Table Size Variables... will be moved to CSS eventually
$table_align = "center";
$table_width = 500;
$table_height = 50;
$cell_width = $table_width/7;
// Start HTML for Building Calendar
$cal_generated .= "<center>".$link_prev_month." ".$link_next_month."</center>";
$cal_generated .= "<table width=\"".$table_width."\" border=\"1\" align=\"".$table_align."\">";
$cal_generated .= "<tr><td colspan=\"7\"><center>".$the_first_day_of_the_month['month']." ".$the_first_day_of_the_month['year']."</center></td></tr>";
$cal_generated .= "<tr><td width=\"".$cell_width."\">Sun</td><td width=\"".$cell_width."\">Mon</td>";
$cal_generated .= "<td width=\"".$cell_width."\">Tue</td><td width=\"".$cell_width."\">Wed</td><td width=\"".$cell_width."\">Thu</td>";
$cal_generated .= "<td width=\"".$cell_width."\">Fri</td><td width=\"".$cell_width."\">Sat</td></tr>";
// Initial Calendar Buildin Variables
$first_week_marked = FALSE;
$month_day_count = 1;
$week_day_count = 0;
$days_in_current_month = cal_days_in_month(CAL_GREGORIAN, $resolved_date['mon'], $resolved_date['year']);
// STRING TO START THE CALENDAR ON THE FIRST DAY OF THE MONTH
$show_month = $resolved_date['month'];
$show_year = $resolved_date['year'];
// Get Info for Current Displayed Month
$string_time = "1 ".$show_month." ".$show_year;
$first_day_of_month = strtotime($string_time);
$first_day = getdate($first_day_of_month); //**************************
$the_first_day_of_the_month = getdate($first_day_of_month); // Starts from the 1st
$num_days_week = 7;
$num_days_in_month = cal_days_in_month(CAL_GREGORIAN, $resolved_date['mon'], $resolved_date['year']);
// Get info for NEXT month
$show_next = strtotime("+1 Month", $first_day_of_month);
$show_next_month_first_day = getdate($show_next);
// Get info for PREV month
$show_prev = strtotime("-1 Month", $first_day_of_month);
$show_prev_month_first_day = getdate($show_prev);
$next_month = $show_next_month_first_day['month'];
$next_year = $show_next_month_first_day['year'];
$prev_month = $show_prev_month_first_day['month'];
$prev_year = $show_prev_month_first_day['year'];
$link_next_month = "<a href="" Month </a>";
$link_prev_month = "<a href="" Month </a>";
// Table Size Variables... will be moved to CSS eventually
$table_align = "center";
$table_width = 500;
$table_height = 50;
$cell_width = $table_width/7;
// Start HTML for Building Calendar
$cal_generated .= "<center>".$link_prev_month." ".$link_next_month."</center>";
$cal_generated .= "<table width=\"".$table_width."\" border=\"1\" align=\"".$table_align."\">";
$cal_generated .= "<tr><td colspan=\"7\"><center>".$the_first_day_of_the_month['month']." ".$the_first_day_of_the_month['year']."</center></td></tr>";
$cal_generated .= "<tr><td width=\"".$cell_width."\">Sun</td><td width=\"".$cell_width."\">Mon</td>";
$cal_generated .= "<td width=\"".$cell_width."\">Tue</td><td width=\"".$cell_width."\">Wed</td><td width=\"".$cell_width."\">Thu</td>";
$cal_generated .= "<td width=\"".$cell_width."\">Fri</td><td width=\"".$cell_width."\">Sat</td></tr>";
// Initial Calendar Buildin Variables
$first_week_marked = FALSE;
$month_day_count = 1;
$week_day_count = 0;
// Start
The Calendar Loop
do {
if($mark_today_on_calendar == TRUE && $todays_date['mday'] == $month_day_count)
{
$highlight_today_open = "<font color=\"#990000\">";
$highlight_today_close = "</font>";
}
else
{
$highlight_today_open = "<font color=\"#000000\">";
$highlight_today_close = "</font>";
}
// If it is the first day of the week open a ROW
if($week_day_count == 0)
{
$cal_generated .= "<tr>";
}
if ($first_week_marked == FALSE)
{
$blank_cell = 0;
do {
if($the_first_day_of_the_month['wday'] <> $blank_cell)
{
$cal_generated .= "<td height=\"".$table_height."\" valign=\"top\"></td>";
$blank_cell++;
}
else
{
$cal_generated .= "<td height=\"".$table_height."\" valign=\"top\">".$highlight_today_open ."".$month_day_count."".$highlight_today_close."</td>";
$first_week_marked = TRUE;
}
$week_day_count = $the_first_day_of_the_month['wday'];
} while ($first_week_marked == FALSE);
}
else
{
$cal_generated .= "<td height=\"".$table_height."\" valign=\"top\">".$highlight_today_open ."".$month_day_count."".$highlight_today_close."</td>";
}
$month_day_count++;
// If it is the last day of the week close ROW
if($week_day_count == 6)
{
$cal_generated .= "</tr>";
}
$week_day_count++;
// Countings
if($week_day_count == 7)
{$week_day_count=0;}
} while ($month_day_count <= $num_days_in_month);
// End Calendar Loop
$cal_generated .= "</table>";
return $cal_generated;
}
do {
if($mark_today_on_calendar == TRUE && $todays_date['mday'] == $month_day_count)
{
$highlight_today_open = "<font color=\"#990000\">";
$highlight_today_close = "</font>";
}
else
{
$highlight_today_open = "<font color=\"#000000\">";
$highlight_today_close = "</font>";
}
// If it is the first day of the week open a ROW
if($week_day_count == 0)
{
$cal_generated .= "<tr>";
}
if ($first_week_marked == FALSE)
{
$blank_cell = 0;
do {
if($the_first_day_of_the_month['wday'] <> $blank_cell)
{
$cal_generated .= "<td height=\"".$table_height."\" valign=\"top\"></td>";
$blank_cell++;
}
else
{
$cal_generated .= "<td height=\"".$table_height."\" valign=\"top\">".$highlight_today_open ."".$month_day_count."".$highlight_today_close."</td>";
$first_week_marked = TRUE;
}
$week_day_count = $the_first_day_of_the_month['wday'];
} while ($first_week_marked == FALSE);
}
else
{
$cal_generated .= "<td height=\"".$table_height."\" valign=\"top\">".$highlight_today_open ."".$month_day_count."".$highlight_today_close."</td>";
}
$month_day_count++;
// If it is the last day of the week close ROW
if($week_day_count == 6)
{
$cal_generated .= "</tr>";
}
$week_day_count++;
// Countings
if($week_day_count == 7)
{$week_day_count=0;}
} while ($month_day_count <= $num_days_in_month);
// End Calendar Loop
$cal_generated .= "</table>";
return $cal_generated;
}
echo
Cal_Month();
?>
Joe Harman
-- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php