PHP實現(xiàn)簡單日歷類編寫
用PHP實現(xiàn)日歷類的編寫,供大家參考,具體內(nèi)容如下
calendar.class.php
<?php/** 創(chuàng)建一個日歷類***/ //修改默認(rèn)時區(qū) date_default_timezone_set('PRC'); class Calendar { private $year; private $month; private $day; //當(dāng)月總天數(shù) private $first_week; //每月的第一天是星期幾 //構(gòu)造函數(shù) function __construct() { $this->year = isset($_GET[’year’])?$_GET[’year’]:date('Y'); $this->month = isset($_GET['month'])?$_GET['month']:date('m'); $this->first_week = date('w', mktime(0, 0 ,0, $this->month, 1, $this->year)); $this->day = date('t', mktime(0, 0 ,0, $this->month, 1, $this->year)); } function showCalendar() { // echo $this->year.'年'.$this->month.'月'.$this->first_week.'天'.$this->day; echo '<table align=’center’>'; //用表格輸出 $this->chageDate('index.php'); //用于用戶調(diào)整年月份 $this->weekList();//顯示星期 $this->dayList(); //顯示天數(shù) echo '</table>'; } //1、顯示星期 private function weekList() { $week = array('日','一','二','三','四','五','六'); echo '<tr>'; for ($i = 0; $i < count($week); $i++) { echo '<th>'.$week[$i].'</th>'; } echo '</tr>'; } //2.顯示天數(shù) private function dayList() { $color = '#2ca50c'; echo '<tr>'; for ($i = 0; $i < $this->first_week; $i++) { //輸出空格,彌補當(dāng)前月空缺部分 echo '<td bgcolor=’#2ca50c’> </td>'; } for ($k = 1; $i <= $this->day; $k++) { $i++; if ($k == date('d')) echo '<td id=’nowd’>'.$k.'</td>'; //是今天,加效果 else echo '<td bgcolor=$color>'.$k.'</td>'; if ($i % 7 == 0) { echo '</tr><tr>'; //每7天一次換行 if ($i % 2 == 0) $color = '#2ca50c'; else $color = '#9ddb27'; //實現(xiàn)各行換色的效果 } } while ($i % 7 != 0) { //將剩余的空格補完 echo '<td bgcolor=’#2ca50c’> </td>'; $i++; } echo '</tr>'; } //3、用于用戶調(diào)整天數(shù) private function chageDate($url='index.php') { echo '<tr>'; echo '<caption><h1>'.$this->year.'年'.$this->month.'月</h1></caption>'; echo '</tr>'; echo '<tr>'; echo '<td>'.'<a href=’?'.$this->prevYear($this->year,$this->month).'’>'.'<'.'</a>'; echo '<td>'.'<a href=’?'.$this->prevMonth($this->year,$this->month).'’>'.'<<'.'</a>'; echo '<td colspan=’3’>'; echo ’<select οnchange='window.location=’’.$url.’?year=’+this.options[selectedIndex].value+’&month=’.$this->month.’’'>’; for ($year = 2038; $year >= 1970; $year--) { $selected = ($year == $this->year)?'selected':''; echo ’<option ’.$selected. ’ value='’.$year.’'>’.$year.’</option>’; //echo ’<option ’.$selected.’ value='’.$year.’'>’.$year.’</option>’; } echo '</select>'; echo ’<select name='month' οnchange='window.location=’’.$url.’?year=’.$this->year.’&month=’+this.options[selectedIndex].value'>’; for($month=1;$month <= 12;$month++){ $selected1 = ($month == $this->month) ? 'selected' : ''; echo ’<option ’.$selected1.’ value='’.$month.’'>’.$month.’</option>’; } echo ’</select>’; echo '</td>'; echo '<td>'.'<a href=’?'.$this->nextMonth($this->year,$this->month).'’>'.'>>'.'</a>'; echo '<td>'.'<a href=’?'.$this->nextYear($this->year,$this->month).'’>'.'>'.'</a>'; echo '</tr>'; } private function prevYear($year, $month) { //獲取上一年的數(shù)據(jù) $year--; if ($year < 1970) $year = 1970; return 'year={$year}&month={$month}'; } private function prevMonth($year, $month) { if ($month == 1) { $year--; if ($year < 1970) $year = 1970; $month = 12; }else $month--; return 'year={$year}&month={$month}'; } private function nextYear($year, $month) { //獲取上一年的數(shù)據(jù) $year++; if ($year > 2038) $year = 2038; return 'year={$year}&month={$month}'; } private function nextMonth($year, $month) { if ($month == 12) { $year++; if ($year > 2038) $year = 2038; $month = 1; }else $month++; return 'year={$year}&month={$month}'; } }
主頁 index.php
<!doctype html><html><head><meta charset='utf-8'><title>日歷顯示</title><style> table { border:1px solid #050; margin: 100px auto; } th { width: 30px; background-color: #0CC; color: #fff; height: 30px; font-size: 20px; } #nowd { color: yellow; background: #F00; } td { width: 30px; text-align: center; height: 25px; color: #fff; } a { display: block; width: 35px; height: 35px; background: #0F9; text-decoration: none; text-align: center; line-height: 35px; } a:hover { background: #CF0; color: #fff; font-size: 20px; }</style></head> <body> <?php include 'calendar.class.php'; $ca = new Calendar(); $ca->showCalendar(); ?></body></html>
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. Intellij IDEA 2019 最新亂碼問題及解決必殺技(必看篇)2. 《javascript設(shè)計模式》學(xué)習(xí)筆記三:Javascript面向?qū)ο蟪绦蛟O(shè)計單例模式原理與實現(xiàn)方法分析3. 利用django創(chuàng)建一個簡易的博客網(wǎng)站的示例4. 未來的J2EE主流應(yīng)用框架:對比Spring和EJB35. JS繪圖Flot如何實現(xiàn)動態(tài)可刷新曲線圖6. ASP.NET MVC獲取多級類別組合下的產(chǎn)品7. JS+css3實現(xiàn)幻燈片輪播圖8. 關(guān)于HTML5的img標(biāo)簽9. Android自定義View實現(xiàn)掃描效果10. PHP5.0正式發(fā)布 不完全兼容PHP4 新增多項功能
