Rumah  >  Artikel  >  pembangunan bahagian belakang  >  PHP设计日历类一 (38)

PHP设计日历类一 (38)

WBOY
WBOYasal
2016-08-08 09:23:241812semak imbas

由两个文件组成:

第一个test.php

<style><span>    table {
        border:1px solid #<span>050<span>;
    }

    .fontb {
        color:white;
        background:blue;
    }
    

    th {
        width:30px;
    }

    td,th {
        height:30px;
        text-<span>align:center;
        
    }
    form {
        margin:0px;
        padding:0px;
    }
</style>
<span>php
    include </span><span>"</span><span>calendar.class.php</span><span>"</span><span>;

    $calendar</span>=<span>new</span><span> Calendar;

    $calendar</span>-><span>out</span>();

第二个日历类:calendar.class.php

<span>php
</span><span>class</span><span> Calendar {
        </span><span>private</span> $year; <span>//</span><span>当前的年</span><span>private</span> $month; <span>//</span><span>当前的月</span><span>private</span> $start_weekday; <span>//</span><span>当月的第一天对应的是周几</span><span>private</span> $days; <span>//</span><span>当前月一共多少天</span><span>        function __construct(){
            $</span><span>this</span>->year=isset($_GET[<span>"</span><span>year</span><span>"</span>]) ? $_GET[<span>"</span><span>year</span><span>"</span>] : date(<span>"</span><span>Y</span><span>"</span><span>);
            $</span><span>this</span>->m>"<span>month</span><span>"</span>]) ? $_GET[<span>"</span><span>month</span><span>"</span>] : date(<span>"</span><span>m</span><span>"</span><span>);
            
            $</span><span>this</span>->start_weekday=date(<span>"</span><span>w</span><span>"</span>, mktime(<span>0</span>, <span>0</span>, <span>0</span>, $<span>this</span>->month, <span>1</span>, $<span>this</span>-><span>year));
            $</span><span>this</span>->days=date(<span>"</span><span>t</span><span>"</span>, mktime(<span>0</span>, <span>0</span>, <span>0</span>, $<span>this</span>->month, <span>1</span>, $<span>this</span>-><span>year));
        }

        function </span><span>out</span><span>(){
            echo </span><span>'</span><span><table align="center">
<span>'</span><span>;
            $</span><span>this</span>->chageDate(<span>"</span><span>test.php</span><span>"</span><span>);
            $</span><span>this</span>-><span>weeksList();
            $</span><span>this</span>-><span>daysList();
            echo </span><span>'</span><span></span>
</table></span><span>'</span><span>;
        }

        </span><span>private</span><span> function weeksList(){
            $week</span>=array(<span>'</span><span>日</span><span>'</span>,<span>'</span><span>一</span><span>'</span>,<span>'</span><span>二</span><span>'</span>,<span>'</span><span>三</span><span>'</span>,<span>'</span><span>四</span><span>'</span>,<span>'</span><span>五</span><span>'</span>,<span>'</span><span>六</span><span>'</span><span>);

            echo </span><span>'</span><span><tr>
<span>'</span><span>;
            </span><span>for</span>($i=<span>0</span>; $i<count>)
                echo <span>'</span><span></span><th>
<span>'</span>.$week[$i].<span>'</span><span></span>
</th>
<span>'</span><span>;

            echo </span><span>'</span><span></span></count>
</tr></span><span>'</span><span>;
        }

        </span><span>private</span><span> function daysList(){
            echo </span><span>'</span><span><tr>
<span>'</span><span>;
            </span><span>//</span><span>输出空格(当前一月第一天前面要空出来)</span><span>for</span>($j=<span>0</span>; $jthis->start_weekday; $j++<span>)
                echo </span><span>'</span><span></span><td> </td>
<span>'</span><span>;


            </span><span>for</span>($k=<span>1</span>; $kthis->days; $k++<span>){
                $j</span>++<span>;
                </span><span>if</span>($k==date(<span>'</span><span>d</span><span>'</span><span>))
                    echo </span><span>'</span><span></span><td>
<span>'</span>.$k.<span>'</span><span></span>
</td>
<span>'</span><span>;
                </span><span>else</span><span>                    echo </span><span>'</span><span></span><td>
<span>'</span>.$k.<span>'</span><span></span>
</td>
<span>'</span><span>;

                </span><span>if</span>($j%<span>7</span>==<span>0</span><span>)
                    echo </span><span>'</span><span></span>
</tr>
<tr>
<span>'</span><span>;
                
            }

            </span><span>//</span><span>后面几个空格</span><span>while</span>($j%<span>7</span>!==<span>0</span><span>){
                echo </span><span>'</span><span></span><td> </td>
<span>'</span><span>;
                $j</span>++<span>;
            }

            echo </span><span>'</span><span></span>
</tr></span><span>'</span><span>;
        }

        </span><span>private</span><span> function prevYear($year, $month){
            $year</span>=$year-<span>1</span><span>;
            
            </span><span>if</span>($year 1970<span>)
                $year </span>= <span>1970</span><span>;

            </span><span>return</span><span>"</span><span>year={$year}&m/span><span>"</span><span>;    
        }


        </span><span>private</span><span> function prevMonth($year, $month){
            </span><span>if</span>($month == <span>1</span><span>) {
                $year </span>= $year -<span>1</span><span>;
        
                </span><span>if</span>($year 1970</span><span>)
                    $year </span>= <span>1970</span><span>;

                $month</span>=<span>12</span><span>;
            }</span><span>else</span><span>{
                $month</span>--<span>;
            }

            </span><span>return</span><span>"</span><span>year={$year}&m/span><span>"</span><span>;    
        }


        </span><span>private</span><span> function nextYear($year, $month){
            $year </span>= $year + <span>1</span><span>;

            </span><span>if</span>($year > <span>2038</span><span>)
                $year </span>= <span>2038</span><span>;

            </span><span>return</span><span>"</span><span>year={$year}&m/span><span>"</span><span>;    
        }


        </span><span>private</span><span> function nextMonth($year, $month){
            </span><span>if</span>($m>12</span><span>){
                $year</span>++<span>;

                </span><span>if</span>($year > <span>2038</span><span>)
                    $year</span>=<span>2038</span><span>;

                $month</span>=<span>1</span><span>;
            }</span><span>else</span><span>{
                $month</span>++<span>;
            }
            

            </span><span>return</span><span>"</span><span>year={$year}&m/span><span>"</span><span>;    
        }

        </span><span>private</span> function chageDate($url=<span>""</span><span>){
            echo </span><span>'</span><span><tr>
<span>'</span><span>;
            echo </span><span>'</span><span></span><td><a href="?</span><span>'</span>.%24<span>this</span>->prevYear(%24<span>this</span>->year,%20%24<span>this</span>->month).<span>'</span><span>"><span>'</span>.<span>'</span><span><span>'</span>.<span>'</span><span></span></span></a></td>
<span>'</span><span>;
            echo </span><span>'</span><span></span><td><a href="?</span><span>'</span>.%24<span>this</span>->prevMonth(%24<span>this</span>->year,%20%24<span>this</span>->month).<span>'</span><span>"><span>'</span>.<span>'</span><span><span>'</span>.<span>'</span><span></span></span></a></td>
<span>'</span><span>;
            echo </span><span>'</span><span></span><td colspan="3">
<span>'</span><span>;
            echo </span><span>'</span><span><form></form></span><span>'</span><span>;
            echo </span><span>'</span><span><select name="year">'</select></span>.$url.<span>'</span><span>?year=\'+this.options[selectedIndex].value+\'&m/span><span>'</span>.$<span>this</span>->month.<span>'</span><span>\'"></span><span>'</span><span>;
            </span><span>for</span>($sy=<span>1970</span>; $sy 2038</span>; $sy++<span>){
                $selected </span>= ($sy==$<span>this</span>->year) ? <span>"</span><span>selected</span><span>"</span> : <span>""</span><span>;
                echo </span><span>'</span><span><option>
<span>'</span>.$selected.<span>'</span><span> value="</span><span>'</span>.$sy.<span>'</span><span>"></span><span>'</span>.$sy.<span>'</span><span></span>
</option></span><span>'</span><span>;
            }
            echo </span><span>'</span><span></span><span>'</span><span>;
            echo </span><span>'</span><span><select name="month">'</select></span>.$url.<span>'</span><span>?year=</span><span>'</span>.$<span>this</span>->year.<span>'</span><span>&m/span><span>'</span><span>;
            </span><span>for</span>($sm=<span>1</span>; $sm12</span>; $sm++<span>){
                $selected1 </span>= ($sm==$<span>this</span>->month) ? <span>"</span><span>selected</span><span>"</span> : <span>""</span><span>;
                echo </span><span>'</span><span><option>
<span>'</span>.$selected1.<span>'</span><span> value="</span><span>'</span>.$sm.<span>'</span><span>"></span><span>'</span>.$sm.<span>'</span><span></span>
</option></span><span>'</span><span>;
            }
            echo </span><span>'</span><span></span><span>'</span><span>;
            echo </span><span>'</span><span></span><span>'</span><span>;    
            echo </span><span>'</span><span></span>
</td>
<span>'</span><span>;


            echo </span><span>'</span><span></span><td><a href="?</span><span>'</span>.%24<span>this</span>->nextYear(%24<span>this</span>->year,%20%24<span>this</span>->month).<span>'</span><span>"><span>'</span>.<span>'</span><span>>></span><span>'</span>.<span>'</span><span></span></a></td>
<span>'</span><span>;
            echo </span><span>'</span><span></span><td><a href="?</span><span>'</span>.%24<span>this</span>->nextMonth(%24<span>this</span>->year,%20%24<span>this</span>->month).<span>'</span><span>"><span>'</span>.<span>'</span><span>></span><span>'</span>.<span>'</span><span></span></a></td>
<span>'</span><span>;
            echo </span><span>'</span><span></span>
</tr></span><span>'</span><span>;
        }

    }</span></span></span>

 效果:

以上就介绍了PHP设计日历类一 (38),包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn