Membuat kalender dengan php sebetulnya tidak terlalu sulit, hanya kita paham perhitungan tahun saja. Berikut ini adalah contoh membuat calender dengan php dan cara perhitungan harinya, mudah-mudahan berguna bagi anda..?. Silahkan copy coode ini dan coba jalankan pada broser anda.
function showCalendar()
{
//Kita perlu pertama dan hari terakhir dari bulan dan hari yang sebenarnya
$today = getdate();
$firstDay = getdate(mktime(0,0,0,$today['mon'],1,$today['year']));
$lastDay = getdate(mktime(0,0,0,$today['mon']+1,0,$today['year']));// Buat tabel dengan informasi yang diperlukan header
$out = “<”table border=’1′>”;
$out.= ‘<tr><th colspan=”7″>’.$today['month'].” – “.$today['year'].”</th></tr>”;
$out.= ‘<tr class=”days”>’;
$out.= ‘<td>Mo</td><td>Tu</td><td>We</td><td>Th</td>’;
$out.= ‘<td>Fr</td><td>Sa</td><td>Su</td></tr>’;// Menampilkan kalender baris pertama dengan posisi benar
$out.= ‘<tr>’;
for($i=0;$i<$firstDay['wday'];$i++){
$out.= ‘<td> </td>’;
}$actday = 0;
for($i=$firstDay['wday'];$i<7;$i++){
$actday++;
if ($actday == $today['mday']) {
$class = ‘ class=”actday”‘;
} else {
$class = ”;
}
$out.= “<td$class>$actday</td>”;
}
$out.= ‘</tr>’;//Dapatkan berapa bulan selesai dalam bulan yang sebenarnya
$fullWeeks = floor(($lastDay['mday']-$actday)/7);
for ($i=0;$i<$fullWeeks;$i++){
$out.= ‘<tr>’;
for ($j=0;$j<7;$j++){
$actday++;
if ($actday == $today['mday']) {
$class = ‘ class=”actday”‘;
} else {
$class = ”;
}
$out.= “<td$class>$actday</td>”;
}
$out.= ‘</tr>’;
}//Sekarang menampilkan sisa bulan
if ($actday < $lastDay['mday']){
$out.= ‘<tr>’;
for ($i=0; $i<7;$i++){
$actday++;
if ($actday == $today['mday']) {
$class = ‘ class=”actday”‘;
} else {
$class = ”;
}if ($actday <= $lastDay['mday']){
$out.= “<td$class>$actday</td>”;
}else {
$out.= ‘<td> </td>’;
}
}
$out.= ‘</tr>’;
}
$out.= ‘</table>’;
return $out;
}
showCalendar();
?>
Sebagai pelengkap tambahkan CSS
table {
width:210px;
border:0px solid #888;
border-collapse:collapse;
}
td {
width:15px;
border-collpase:collpase;
border:1px solid #888;
text-align:right;
padding-right:4px;
}
.days{
background-color: #cccccc;
}
th {
border-collpase:collpase;
border:1px solid #888;
background-color: #bbbbbb;
text-align:center;
}
.actday{
background-color: #ff4545;
font-weight:bold;
}
Selamat Mencoba ya….?



0 Responses
Stay in touch with the conversation, subscribe to the RSS feed for comments on this post.