您好,登錄后才能下訂單哦!
這篇文章主要介紹“怎么用php制作日歷”,在日常操作中,相信很多人在怎么用php制作日歷問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”怎么用php制作日歷”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
calendar.class.php
復制代碼 代碼如下:
<?php
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");
$this->start_weekday=date("w", mktime(0, 0, 0, $this->month, 1, $this->year));
$this->days=date("t", mktime(0, 0, 0, $this->month, 1, $this->year));
}
function out(){
echo '<table align="center">';
$this->chageDate("test.php");
$this->weeksList();
$this->daysList();
echo '</table>';
}
private function weeksList(){
$week=array('日','一','二','三','四','五','六');
echo '<tr>';
for($i=0; $i<count($week); $i++)
echo '<th class="fontb">'.$week[$i].'</th>';
echo '</tr>';
}
private function daysList(){
echo '<tr>';
//輸出空格(當前一月第一天前面要空出來)
for($j=0; $j<$this->start_weekday; $j++)
echo '<td> </td>';
for($k=1; $k<=$this->days; $k++){
$j++;
if($k==date('d'))
echo '<td class="fontb">'.$k.'</td>';
else
echo '<td>'.$k.'</td>';
if($j%7==0)
echo '</tr><tr>';
}
//后面幾個空格
while($j%7!==0){
echo '<td> </td>';
$j++;
}
echo '</tr>';
}
private function prevYear($year, $month){
$year=$year-1;
if($year < 1970)
$year = 1970;
return "year={$year}&month={$month}";
}
private function prevMonth($year, $month){
if($month == 1) {
$year = $year -1;
if($year < 1970)
$year = 1970;
$month=12;
}else{
$month--;
}
return "year={$year}&month={$month}";
}
private function nextYear($year, $month){
$year = $year + 1;
if($year > 2038)
$year = 2038;
return "year={$year}&month={$month}";
}
private function nextMonth($year, $month){
if($month==12){
$year++;
if($year > 2100)
$year=2100;
$month=1;
}else{
$month++;
}
return "year={$year}&month={$month}";
}
private function chageDate($url=""){
echo '<tr>';
echo '<td><a href="?'.$this->prevYear($this->year, $this->month).'">'.'<<'.'</a></td>';
echo '<td><a href="?'.$this->prevMonth($this->year, $this->month).'">'.'<'.'</a></td>';
echo '<td colspan="3">';
echo '<form>';
echo '<select name="year" onchange="window.location=\''.$url.'?year=\'+this.options[selectedIndex].value+\'&month='.$this->month.'\'">';
for($sy=1970; $sy <= 2100; $sy++){
$selected = ($sy==$this->year) ? "selected" : "";
echo '<option '.$selected.' value="'.$sy.'">'.$sy.'</option>';
}
echo '</select>';
echo '<select name="month" onchange="window.location=\''.$url.'?year='.$this->year.'&month=\'+this.options[selectedIndex].value">';
for($sm=1; $sm<=12; $sm++){
$selected1 = ($sm==$this->month) ? "selected" : "";
echo '<option '.$selected1.' value="'.$sm.'">'.$sm.'</option>';
}
echo '</select>';
echo '</form>';
echo '</td>';
echo '<td><a href="?'.$this->nextYear($this->year, $this->month).'">'.'>>'.'</a></td>';
echo '<td><a href="?'.$this->nextMonth($this->year, $this->month).'">'.'>'.'</a></td>';
echo '</tr>';
}
}
?>
test.php
復制代碼 代碼如下:
<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>
<?php
include "calendar.class.php";
$calendar=new Calendar;
$calendar->out();
?>
到此,關于“怎么用php制作日歷”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。