php實(shí)現(xiàn)的日歷程序
本文實(shí)例講述了php實(shí)現(xiàn)的日歷程序。分享給大家供大家參考。具體如下:
<?php
////判斷$Year和$Month是否為空,如果為空就獲取系統(tǒng)當(dāng)前日期,否則用$_GET獲取
$Year = empty($_GET['Year']) ? date("Y"): $_GET["Year"];
$Month = empty($_GET['Month']) ? date("m"): $_GET["Month"];
////獲取當(dāng)前日期////
$Today = date("Ymj");
////初始化日期數(shù)組////
$Maxday = array("1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20",
"21","22","23","24","25","26","27","28","29","30","31");
$Maxday_count = count($Maxday);
////初始化星期數(shù)組////
$Weekday = array("<font color='red'>Sun</font>","Mon","Tue","Wed","Thu","Fri","<font color='red'>Sat</font>");
$Weekday_count = count($Weekday);
$daynum = 0;
$space = "<td> </td>";
$col = 0;
////打印表格頭部////
?>
<form action="calendar.php" method="post" name="linked">
<table><tr><td colspan=3 align=center><a href="?Year=<?php if($Year-1 > 1900)echo $Year-1;else echo $Year;?>&Month=<?php echo $Month?>" onClick="javascript:document.linked.submit();" name="Year"><<</a> <?php echo $Year?> <a href="?Year=<?php if($Year+1 <2999) echo $Year+1;else echo $Year;?>&Month=<?php echo $Month?>" onClick="javascript:document.linked.submit();" name="Year">>></a></td>
<td> </td><td colspan=3 align=center><a href="?Year=<?php echo $Year?>&Month=<?php if($Month-1 >0) if($Month-1 < 10)echo "0".($Month-1); else echo $Month-1; else echo $Month;?>" onClick="javascript:document.linked.submit();" name="Month"><<</a> <?php echo $Month;?> <a href="?Year=<?php echo $Year?>&Month=<?php if($Month+1 <13) if($Month+1 <10) echo "0".($Month+1);else echo ($Month+1); else echo $Month;?>" onClick="javascript:document.linked.submit();" name="Month">>></a></td></tr><tr><td colspan="8"></td></tr><tr>
<?php
////打印星期列表////
while(list(,$Weekvalue) = each($Weekday))
echo "<td align=center> ".$Weekvalue." </td>";
echo "</tr>";
////打印日期列表////
//當(dāng)月份為4,6,9,11的時(shí)候,從數(shù)組末尾刪除一個(gè)值,也就是刪除31這個(gè)值.
if($Month == 4 or $Month == 6 or $Month == 9 or $Month == 11)
{
array_pop($Maxday);
$Maxday_count--;
}
//先判斷月份是否為2月,如果是的話再判斷年份是否為閏年,如果是的話就從數(shù)組尾部移除2個(gè)值,否則就移除3個(gè)值.
if($Month == 2)
{
if($Year % 4 == 0)
{
array_pop($Maxday);
array_pop($Maxday);
$Maxday_count-=2;
}
else
{
array_pop($Maxday);
array_pop($Maxday);
array_pop($Maxday);
$Maxday_count-=3;
}
}
////打印日期////
while($daynum < $Maxday_count)
{
echo "<tr>";
while(list($colnum,$Dayvalue) = each($Maxday))
{
//判斷當(dāng)前日期為一星期中的哪一天
$DayWeek = date("w",strtotime($Year."-".$Month."-".$Dayvalue));
//當(dāng)當(dāng)前日期處于第1個(gè),也就是每個(gè)月的第1天的時(shí)候,在它前面補(bǔ)上相應(yīng)的空格子
if($Dayvalue == 1)
for($i=0;$i<$DayWeek;$i++)
echo $space;//打印每個(gè)月空出的幾個(gè)格子
$daynum++;
//當(dāng)打印日期的時(shí)候與當(dāng)前日期字符串進(jìn)行比較,如果相等就將字體標(biāo)為紅色.
if($Year.$Month.$Dayvalue == $Today)
{
$u1 = "<b><u>";
$u2 = "</b></u>";
}
else
{
$u1 = "";
$u2 = "";
}
if($DayWeek == 0 or $DayWeek == 6)
$color = "red";
else
$color = "black";
echo "<td align=center><font color=".$color."> ".$u1.$Dayvalue.$u2." </font></td>";
//用本周第幾天這個(gè)值加1,如果是7的倍數(shù)就換行退出此輪循環(huán)(換行打印)
if(($DayWeek+1) % 7 == 0)
{
$col++;
break;
}
}
echo "</tr>";
}
?>
運(yùn)行效果如下:

希望本文所述對(duì)大家的php程序設(shè)計(jì)有所幫助。
相關(guān)文章
利用php實(shí)現(xiàn)禁用IE和火狐的緩存問題
利用php實(shí)現(xiàn)禁用IE和火狐的緩存問題,在網(wǎng)速找了好多方法,最終還是解決了,需要了解的朋友可以參考下2012-12-12
php連接Access數(shù)據(jù)庫錯(cuò)誤及解決方法
前二天把一個(gè)asp+access的網(wǎng)站改成php+access的,在連連數(shù)據(jù)庫時(shí)可真讓我狠狠的郁悶了一把,通過百度了大量的相關(guān)文章終于解決了2013-06-06
PHP幾個(gè)實(shí)用自定義函數(shù)小結(jié)
這篇文章主要介紹了PHP幾個(gè)實(shí)用自定義函數(shù),結(jié)合實(shí)例總結(jié)分析了PHP網(wǎng)絡(luò)操作、字符串操作、時(shí)間操作及正則表達(dá)式使用等技巧,需要的朋友可以參考下2016-01-01
PHP ajax跨子域的解決方案之document.domain+iframe實(shí)例分析
這篇文章主要介紹了PHP ajax跨子域的解決方案之document.domain+iframe,結(jié)合實(shí)例形式分析了PHP ajax跨子域的解決方案document.domain+iframe的基本原理、實(shí)現(xiàn)方法與操作注意事項(xiàng),需要的朋友可以參考下2020-03-03
PHP中調(diào)用C/C++制作的動(dòng)態(tài)鏈接庫的教程
這篇文章主要介紹了PHP中調(diào)用C/C++制作的動(dòng)態(tài)鏈接庫的教程,文中還簡單地提到了gcc編譯器下動(dòng)態(tài)鏈接庫的制作方法,需要的朋友可以參考下2016-03-03
php實(shí)現(xiàn)比較兩個(gè)文件夾異同的方法
這篇文章主要介紹了php實(shí)現(xiàn)比較兩個(gè)文件夾異同的方法,涉及php針對(duì)目錄與文件名的遞歸操作技巧,需要的朋友可以參考下2015-06-06
php簡單實(shí)現(xiàn)發(fā)送帶附件的郵件
這篇文章主要介紹了php簡單實(shí)現(xiàn)發(fā)送帶附件的郵件,涉及附件上傳及郵件發(fā)送的相關(guān)技巧,需要的朋友可以參考下2015-06-06
PHP高并發(fā)高負(fù)載下的3種實(shí)戰(zhàn)場景解決方法示例
這篇文章主要為大家介紹了PHP高并發(fā)高負(fù)載下的3種實(shí)戰(zhàn)場景解決方法示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-05-05

