ホーム > ブログ [果報は寝て待て] > PHPカレンダースクリプト
PHPカレンダースクリプト
2008年10月7日 09:11
おはようございます。
何故か微妙に寝不足気味な掛尾です。
今回は、某所で公開していたPHPのカレンダースクリプトを紹介しようと思います。
ブログなんかのサイドにちょこんとあって、まぁ使うとこはあまり無いけど、あるとなんとなく安心するあれです(笑)
クラスで作っているので、単体でも動きますが、必要があればロジックとビューを分けて、MVC化して使う事もできると思います。
(余談)shape DESIGNが作るブログは、これをSmartyと連携して使っています。
class Calendar { function &createCalendar( $year, $month ) { $calendar['curr_month'] = sprintf( '%04d年%02d月', $year, $month ); $f_dow = date( 'w', mktime( 0, 0, 0, $month, 1, $year ) ); $col = 0; $cal = "<tr>\n"; for( $i = 0; $i < $f_dow; $i++ ){ $cal .= "<td> </td>"; $col++; } $day = 0; while( checkdate( $month, ++$day, $year ) ){ // 今日 if( $year == date( "Y" ) && $month == date( "m" ) && $day == date( "d" ) ){ $cal .= "<td style=\"background: #fdd; font-weight: bold;\">$day</td>"; } // 日曜 elseif( ( $day + $f_dow ) % 7 == 1 ){ $cal .= "<td style=\"color: #f00;\">$day</td>"; } // 土曜 elseif( ( $day + $f_dow ) % 7 == 0 ){ $cal .= "<td style=\"color: #00f;\">$day</td>"; } else { $cal .= "<td>$day</td>"; } $col++; if( $col % 7 == 0 ) $cal .="\n</tr>\n<tr>\n"; } $e_dow = date( 'w', mktime( 0, 0, 0, $month, $day, $year ) ); if( $e_dow != 0 ){ for( $i = 0; $i < 7 - $e_dow; $i++ ){ $cal .= "<td> </td>"; } } $cal .= "\n</tr>\n"; $calendar['view'] = $cal; // ページ処理 // 前月 if( $month == 1 ){ $calendar['last_year'] = $year - 1; $calendar['last_month'] = 12; } else { $calendar['last_year'] = $year; $calendar['last_month'] = $month - 1; } // 次月 if( $month == 12 ){ $calendar['next_year'] = $year + 1; $calendar['next_month'] = 1; } else { $calendar['next_year'] = $year; $calendar['next_month'] = $month + 1; } return $calendar; } } $calendar = new Calendar(); $curr_year = isset( $_GET['year'] ) ? $_GET['year'] : date( "Y" ); $curr_month = isset( $_GET['month'] ) ? $_GET['month'] : date( "m" ); $cal =& $calendar->createCalendar( $curr_year, $curr_month ); <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>カレンダー</title> </head> <body> <div id="calendar"> <table border="0" cellspacing="0" cellpadding="5" style="text-align: center;"> <tr> <td colspan="7" align="center"> <a href="Calendar.class.php?year= echo $cal['last_year']; &month= echo $cal['last_month']; "><<</a> echo $cal['curr_month']; <a href="Calendar.class.php?year= echo $cal['next_year']; &month= echo $cal['next_month']; ">>></a> </td> </tr> <tr> <th style="color: #f00;">日</th> <th>月</th> <th>火</th> <th>水</th> <th>木</th> <th>金</th> <th style="color: #00f;">土</th> </tr> echo $cal['view']; </table> </div> </body> </html>
それほど難しい事はしていないと思うので、じっくり読めば難解でもないと思います。
それでは…今回はこの辺で。
オシャレな(?)カレンダーを設置してくださいね!
※このスクリプトにおいて、動作の検証は行っていませんので、責任は一切負いません。
徳島県徳島市名東町
tel/fax 088-635-5859
営業時間 平日 10:00〜18:00
※打ち合わせ等で不在の場合は、お電話でのお問い合わせに対応できない場合がありますので、ご了承ください。
徳島・香川・愛媛・高知および大阪・京都を中心にご依頼を承ります。その他の地域でも、メール・お電話・FAX・Skype等での作業が可能であれば柔軟に対応いたします。