Membuat kalender dengan PHP

Sehubungan dengan datangnya tahun baru 2012 sebentar lagi, mari kita berkreasi dengan membuat kalender sederhana untuk tahun 2012 menggunakan PHP.

Berikut code CSS nya :

table.calendar{ border-left:1px solid #999; }
td.calendar-day	{ min-height:20px; font-size:11px; position:relative; text-align:center; } * html div.calendar-day { height:20px; }
td.calendar-day:hover { background:#eceff5; }
td.calendar-day-np { background:#eee; min-height:20px; } * html div.calendar-day-np { height:20px; }
td.calendar-day-head { background:#ccc; font-size:12px; font-weight:bold; text-align:center; width:50px; padding:5px; border-bottom:1px solid #999; border-top:1px solid #999; border-right:1px solid #999; }
td.calendar-day, td.calendar-day-np { width:20px; padding:5px; border-bottom:1px solid #999; border-right:1px solid #999; }

Dan ini PHP nya :

echo "<h1>Kalender Tahun 2012</h1>";
$year = 2012;
for($month=1; $month<=12; $month++){
	$month_name = array('Januari','Februari','Maret','April','Mei','Juni','Juli','Agustus','September','Oktober','Nopember','Desember');
	echo '<h2>'.$month_name[$month-1].'</h2>';
	$calendar = '<table cellpadding="0" cellspacing="0" class="calendar">';

	$headings = array('Minggu','Senin','Selasa','Rabu','Kamis','Jumat','Sabtu');
	$calendar.= '<tr class="calendar-row"><td class="calendar-day-head">'.implode('</td><td class="calendar-day-head">',$headings).'</td></tr>';

	$running_day = date('w',mktime(0,0,0,$month,1,$year));
	$days_in_month = date('t',mktime(0,0,0,$month,1,$year));
	$days_in_this_week = 1;
	$day_counter = 0;
	$dates_array = array();

	$calendar.= '<tr class="calendar-row">';

	for($x = 0; $x < $running_day; $x++):
		$calendar.= '<td class="calendar-day-np"> </td>';
		$days_in_this_week++;
	endfor;

	for($list_day = 1; $list_day <= $days_in_month; $list_day++):
		$calendar.= '<td class="calendar-day">';
		$calendar.= '<div class="day-number">'.$list_day.'</div>';
		$calendar.= '</td>';
		if($running_day == 6):
			$calendar.= '</tr>';
			if(($day_counter+1) != $days_in_month):
				$calendar.= '<tr class="calendar-row">';
			endif;
			$running_day = -1;
			$days_in_this_week = 0;
		endif;
		$days_in_this_week++; $running_day++; $day_counter++;
	endfor;

	if($days_in_this_week < 8):
		for($x = 1; $x <= (8 - $days_in_this_week); $x++):
			$calendar.= '<td class="calendar-day-np"> </td>';
		endfor;
	endif;

	$calendar.= '</tr>';
	$calendar.= '</table>';

	echo $calendar;
}

Untuk demo nya silahkan klik disini

Selamat Natal 25 Desember 2011 dan Tahun Baru 2012

sandy -

2 Comments
05/01/12 16:30

bogel

Mass .. Demo nya engga bisa ntuh ….

11/01/12 18:54

rifqon fajri

makasih gan,bermanfaat baget tulisan nya…

Leave a Comment