亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > PHP > 正文

一個比較不錯的PHP日歷類分享

2020-03-22 18:01:58
字體:
來源:轉載
供稿:網友
說到對時期和時間的處理,就一定要介紹一下日歷程序的編寫。但一提起編寫日歷,大多數人都會認為日歷的作用只是為了在頁上顯示當前的日期,其實日歷在我們的開發中有更重要的作用。例如我們開發一個“記事本”就需要通過日歷設定日期,還有一些系統中需要按日期去排任務,也需要日歷,等等。本例涉及的日期和時間函數并不是很多,都是前面介紹的內容,主要是通過一個日歷類的編寫,鞏固一下前面介紹過的html' target='_blank'>面向對象的語法知識,以及時間函數應用,最主要的是可以提升初學者的思維邏輯和程序設計能力。將日歷類Calendar聲明在文件calendar.class.php中,代碼如下所示: php // file:calendar.class.php 日歷類原文件error_reporting(0);class Calendar{private $year;private $month;private $start_weekday; //當月的第一天對應的是周幾,作為當月開始遍歷日期的開始private $days; //當前月總天數//構造方法,用來初使化一些日期屬性function __construct(){//如果用戶沒有設置所份數,則使用當前系統時間的年份$this- year = isset($_GET["year"]) $_GET["year"] : date("Y");//如果用戶沒有設置月份數,則使用當前系統時間的月份$this- month = isset($_GET["month"]) $_GET["month"] : date("m");//通過具體的年份和月份,利用date()函數的w參數獲取當月第一天對應的是周幾$this- start_weekday = date("w",mktime(0,0,0,$this- month,1,$this- year));//通過具體的年份和月份,利用date()函數的t參數獲取當月的天數$this- days = date("t",mktime(0,0,0,$this- month,1,$this- year));}//魔術方法用于打印整個日歷function __toString(){$out .=' table align="center" $out .=$this- chageDate(); //調用內部私有方法用于用戶自己設置日期$out .=$this- weeksList(); //調用內部私有方法打印周列表$out .=$this- daysList(); //調用內部私有方法打印日列表$out .=' /table return $out; //返回整個日歷輸需要的全部字符串}//內部調用的私有方法,用于輸出周列表private function weeksList(){$week = array('日','一','二','三','四','五','六');$out .= ' tr for ($i = 0; $i count($week); $i++)$out .= ' th '.$week[$i].' /th //第一行以表格 th 輸出周列表$out .= ' /tr return $out; //返回周列表字符串}//內部調用的私有方法,用于輸出周列表private function daysList(){$out .= ' tr //輸出空格(當前一月第一天前面要空出來)for ($j = 0; $j $this- start_weekday; $j++)$out .= ' td /td //將當月的所有日期循環遍歷出來,如果是當前日期,為其設置深色背景for ($k = 1; $k =$this- days; $k++){$j++;if ($k == date('d')){$out .= ' td '.$k.' /td }else {$out .=' td '.$k.' /td }if ($j%7 == 0) //每輸出7個日期,就換一行$out .= ' /tr tr //輸出行結束和下一行開始}//遍歷完日期后,將后面用空格補齊while ($j%7 !== 0){ $out .= ' td /td $j++;}$out .= ' /tr return $out; //返回當月日期列表}//內部調用的私有方法,用于處理當前年份的上一年需要的數據private function prevYear($year,$month){$year = $year-1; //上一年是當前年減1if($year 1970) //年份設置最小值是1970年$year = 1970;return "year={$year}&month={$month}"; //返回最終的年份和月份設置參數}//內部調用的私有方法,用于處理當前月份的上一月份需要的數據private function prevMonth($year,$month){if ($month == 1){$year = $year-1; //上一年是當前年減1if($year 1970) //年份設置最小值是1970年$year =1970;$month = 12; //如果是1月,上一月就是上一年的最后一月}else {$month--; //上一月份是當前月減1}return "year={$year}&month={$month}"; //返回最終的年份和月份設置參數}//內部調用的私有方法,用于處理當前年份的下一年份的數據private function nextYear($year,$month){$year = $year+1; //下一年是當前年加1if($year 2038) //年份設置最大值是2038年$year =2038;return "year={$year}&month={$month}"; //返回最終的年份和月份設置參數}//內部調用的私有方法,用于處理當前月份的下一月份需要的數據private function nextMonth($year,$month){if ($month == 12){$year++; if($year 2038) //年份設置最大值是2038年$year =2038;$month = 1; //如果是1月,上一月就是上一年的最后一月}else {$month++; //上一月份是當前月減1}return "year={$year}&month={$month}"; //返回最終的年份和月份設置參數}//內部調用的私有方法,用于用戶操作去調整年份和月份的設置private function chageDate($url="index.php"){$out .= ' tr $out .= ' td a href="'.$url.' '.$this- prevYear($this- year,$this- month).'" '.' '.' /a /td $out .= ' td a href="'.$url.' '.$this- prevMonth($this- year,$this- month).'" '.' '.' /a /td $out .= ' td colspan="3" $out .= ' form $out .= ' select name="year" onchange="window.location=/''.$url.' year=/'+this.options[selectedIndex].value+/'&month='.$this- month.'/'" for ($sy=1970; $sy =2038;$sy++){$selected = ($sy == $this- year) "selected" : "";$out .= ' option '.$selected.' value="'.$sy.'" '.$sy.' /option }$out .= ' /select $out .= ' select name="month" onchange="window.location=/''.$url.' year='.$this- year.'&month=/'+this.options[selectedIndex].value" for ($sm=1; $sm $sm++){$selected1 = ($sm == $this- month) "selected" : "";$out .= ' option '.$selected1.' value="'.$sm.'" '.$sm.' /option }$out .= ' /select $out .= ' /form $out .= ' /td $out .= ' td a href="'.$url.' '.$this- nextYear($this- year,$this- month).'" '.' '.' /a /td $out .= ' td a href="'.$url.' '.$this- nextMonth($this- year,$this- month).'" '.' '.' /a /td $out .= ' /tr return $out; //返回日期表單}} 本例將一個日歷程序按功能拆分(周列表部分、日期列表部分、設置日期部分,以及上一年、下一年、上一月和下一月的設置部分)并封裝在一個日歷類中。有了日歷類,我們還需要再編寫一個主程序去加載并輸出日歷,在主程序中還需要先設置一下日歷輸出的樣式,代碼如下所示: html head title 恩聰PHP日歷示例 /title style table {border:1px solid #050;}.fontb {color:white; background:blue;}th{width:30px;}td,th{height:30px;text-align:center;}form{margin:0px; padding:0px;} /style /head body phprequire 'calendar.class.php';echo new calendar; /body /html 運行結果如圖所示,默認顯示當前系統日期??梢酝ㄟ^單擊“ ”按鈕設置下一年份,但設置的最大年份為2038年。也可以通過單擊“ ”按鈕設置上一年份,但設置的最小年份為1970年。還可以通過單擊“ ”各“ ”按鈕設置上一個和下一個月份,如果當月為12月,則設置的下一個月份就為次年的1月,如果當月為1月,則設置上一個月份就為上一年的12月。如果需要快速定位到指定的年份和月份,還可通過下拉列表進行設置。PHP教程

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美裸体视频网站| 日韩av在线免费看| 亚洲片国产一区一级在线观看| 亚洲人精选亚洲人成在线| 亚洲免费视频一区二区| 欧美高跟鞋交xxxxhd| 26uuu另类亚洲欧美日本一| 欧美成人免费全部观看天天性色| 国产欧美一区二区三区四区| 亚洲成色777777在线观看影院| 国产剧情日韩欧美| 亚洲成年人影院在线| 尤物九九久久国产精品的分类| 亚洲黄色有码视频| 少妇激情综合网| 日韩在线免费av| 亚洲区中文字幕| 欧美精品免费播放| 国产精品免费在线免费| 亚洲精品乱码久久久久久金桔影视| 国产精品高清在线观看| 欧美wwwxxxx| 久久久国产精品一区| 欧美肥老太性生活视频| 全亚洲最色的网站在线观看| 日韩中文在线观看| 亚洲iv一区二区三区| 日韩中文字幕在线| 精品视频9999| 欧美猛男性生活免费| 精品久久久中文| 日韩精品中文字幕有码专区| 精品久久久久久亚洲国产300| 国产91在线播放九色快色| 日韩精品中文字幕在线播放| 亚洲日韩第一页| 国产精品视频专区| 最近2019好看的中文字幕免费| 国产91精品视频在线观看| 91av在线视频观看| 久久久精品亚洲| 久久久国产影院| 亚洲高清av在线| 福利视频第一区| 亚洲精品午夜精品| 国产精品白嫩初高中害羞小美女| 欧美性猛交xxxx免费看漫画| 91精品国产综合久久久久久久久| 川上优av一区二区线观看| 国产在线不卡精品| 午夜精品福利在线观看| 综合网日日天干夜夜久久| 欧美激情aaaa| 日韩中文在线观看| 亚洲成人久久久久| 中文字幕在线日韩| 国产一区二区三区久久精品| 日韩成人在线视频观看| 欧美激情一区二区三区高清视频| 97成人精品区在线播放| 久久躁狠狠躁夜夜爽| 国产亚洲日本欧美韩国| 538国产精品一区二区在线| 欧美第一淫aaasss性| 色综合亚洲精品激情狠狠| 亚洲电影免费观看高清完整版在线| 亚洲美女在线视频| 奇米4444一区二区三区| 亚洲国产一区二区三区在线观看| 日韩精品极品在线观看播放免费视频| 久久精品在线播放| 深夜福利国产精品| 中文字幕在线精品| 亚洲资源在线看| 久久久精品国产亚洲| 日韩美女毛茸茸| 九色精品免费永久在线| 91色在线观看| 性欧美暴力猛交69hd| 成人久久18免费网站图片| 久久久久久久久久久人体| 日韩美女中文字幕| 成人动漫网站在线观看| 91伊人影院在线播放| 日韩欧美精品网址| 一区二区三区天堂av| 最近的2019中文字幕免费一页| 成人免费网站在线| 亚洲国产精品国自产拍av秋霞| 九九久久久久99精品| 亚洲男人av在线| 日韩欧美精品网站| 欧美午夜片欧美片在线观看| 久久精品国产亚洲| 欧美成人免费小视频| 久久手机精品视频| 国产精品成人免费视频| 国产原创欧美精品| 国产亚洲成精品久久| 日韩精品一二三四区| 欧美视频在线视频| 亚洲欧美三级在线| 国产精品欧美日韩久久| 欧美日韩在线一区| 国产小视频91| 国产精品一区二区三区久久久| 亚洲精品美女免费| 91禁国产网站| 日韩精品电影网| 久久久久国产一区二区三区| 538国产精品一区二区在线| 亚洲欧洲免费视频| 成人亚洲激情网| 国产日本欧美一区| 欧美在线视频网站| 久久久久久久一区二区三区| 国产午夜精品免费一区二区三区| 在线不卡国产精品| 精品丝袜一区二区三区| 久久久久久久91| 久久国产精品久久国产精品| 97视频人免费观看| 久久精品国产一区| 中文字幕亚洲欧美一区二区三区| 国产精品亚洲精品| 国产亚洲激情视频在线| 国产精品无av码在线观看| 日韩专区中文字幕| 亚洲一区二区中文| 亚洲石原莉奈一区二区在线观看| 成人做爽爽免费视频| 中文字幕亚洲一区二区三区五十路| 亚洲激情视频在线播放| 久久国产精品久久精品| 国产精品久久久久久久久免费看| 欧美色xxxx| 国产精品一区二区三| 亚洲精品电影网| 91精品国产91久久久久久| 欧美在线不卡区| 色妞在线综合亚洲欧美| 欧美日韩在线免费观看| 九九热这里只有精品免费看| 久久久久女教师免费一区| 欧美日韩国产成人| 欧美国产日韩xxxxx| 超薄丝袜一区二区| 热久久免费国产视频| 亚洲国产精彩中文乱码av| 97久久伊人激情网| 亚洲精选在线观看| 热re91久久精品国99热蜜臀| 日韩欧美成人免费视频| 欧美精品一区二区免费| 国产原创欧美精品| 精品国产乱码久久久久久天美| 亚洲二区中文字幕| 亚洲aⅴ日韩av电影在线观看| 黄色成人av网| 国产丝袜一区二区三区免费视频| 欧美黄色片免费观看| 国产精品入口福利| 国产成人精品优优av| 欧美日本亚洲视频|