単純なカレンダーの実装です。先人を参照していないコードの実装方法に問題があるかどうかはわかりません。私の悪いコードを理解した後は、他の人の優れたコードを評価する方が役立ちます。
- #calendardiv,#カレンダー{幅:252px;}
- #cal_title{高さ:33px;行の高さ:33px;text-align:center;overflow:hidden;}
- #cal_titlestrong{font-weight:bold;font-size:14px;
- #cal_title a{font-weight:bold;font-size:14px;text-decoration:none;}
- #calendar{border-collapse:collapse;}
- #calendar td{
- text-align:center;
- width: 35px;
- 高さ:20px;
- line-height:20px;
- background-color:#efefef;
- border-bottom:1pxソリッド#fff;
- ボーダー右:1pxソリッド#fff;
- }
- #calendar .even td {背景色:#e6e6e6;}
- #calendar td .current{表示:ブロック;背景色:#f60;color:#fff;}
- #calendar .current{背景色:#f60!重要;色: #fff;}
- #週 td{color:#fff;background-color:#373737;}
- $date = isset( $_GET['d']) ? intval($_GET['d']) : '';
- if($date)
- {
- $y = substr($date,0,4);
- $m = substr ($date,4,2);
- $cur = mktime(0,0,0,$m,1,$y);
- }
- else
- {
- $cur = mktime();
- }
- list( $year,$month,$day) =explode('-',date('Y-m-d',$cur));//年、月、日
- $p = date('Ym',strtotime('last months' ,$cur));//前月
- $n = date('Ym',strtotime('next months',$cur));//翌月
- $t = date('t', $cur ); //月の何日か
- $s = date('w',mktime(0,0,0,$month,1,$year)) //空白を埋める
- $e = 6- (date(' w',mktime(0,0,0,$month,$t,$year)));//空白を埋めてください
- ?>
- < ;div id=" cal_title">« 年=$月?>月 »
day | < td>12 | 34 | 5 | 6< /td> | |
- echo '
';
- for($i=0;$i<$s;$i++)
- {
- echo '
| ';
- }
- for($d=1;$d<=$t;$d++)
- {
- $current=$d==$day ?'class=" current"':'';//現在のスタイル
- $r = ($d+$s)%7;//改行
- echo "
$d | " ;
- if( $r==0)
- {
- echo '
';
- echo '
';
- }
- }
- for($i=0;$ i<$e ;$i++)
- {
- echo '
| ';
- }
- ?>
コードをコピー
|