Simple PHP Calendar

Posted it on my blog, but I decided that I should share it here as well, for those of you that need a simple php calendar.


<?php
// This gets today's date
$date = time ();

// This puts the day, month, and year in seperate variables
$day = date('d', $date);
$month= date('m', $date);
$year = date('Y', $date);

// Here we generate the first day of the month
$first_day = mktime(0,0,0,$month, 1, $year);

//This gets us the month name
$title = date('F', $first_day);

//Here we find out what day of the week the first day of the month falls on
$day_of_week = date('D', $first_day);

//Once we know what day of the week it falls on, we know how many blank days occure before it. If the first day of the week is a Sunday then it would be zero
switch($day_of_week) {
case "Sun": $blank = 0; break;
case "Mon": $blank = 1; break;
case "Tue": $blank = 2; break;
case "Wed": $blank = 3; break;
case "Thu": $blank = 4; break;
case "Fri": $blank = 5; break;
case "Sat": $blank = 6; break;
}

// We then determine how many days are in the current month
$days_in_month = cal_days_in_month(0, $month, $year);
?>

<?php print $month; ?> <?php print $year; ?>

Sun
Mon
Tue
Wed
Thu
Fri
Sat

<?php $day_count = 1;// This counts the days in the week, up to 7 ?>

<?php while ($blank > 0): //first we take care of those blank days ?>
  <?php $blank = $blank-1; $day_count++; ?>
<?php endwhile; ?>
<?php $day_num = 1; //sets the first day of the month to 1 ?>

<?php while ($day_num <= $days_in_month): //count up the days, until we've done all of them in the month ?>
<?php print $day_num; ?>
<?php $day_num++; $day_count++; ?>
<?php if ($day_count > 7): //Make sure we start a new row every week ?>

<?php $day_count = 1; ?>
<?php endif; ?>
<?php endwhile; ?>

<?php while ($day_count >1 && $day_count <=7): //Finaly we finish out the table with some blank details if needed ?>
 
<?php $day_count++; ?>
<?php endwhile; ?>

Technology: 

Add new comment