摘要:本文实例讲述了php实现的日历程序。分享给大家供大家参考。具体如下:<?php
判断$Year和$Month是否为空,如果为空就获取系统当前日期,否则用$_GET获取
$Year = empty($_GET['Year']) ? date("Y"): $_GET["Year"];
本文实例讲述了php实现的日历程序。分享给大家供大家参考。具体如下:<?php
判断$Year和$Month是否为空,如果为空就获取系统当前日期,否则用$_GET获取
$Year = empty($_GET['Year']) ? date("Y"): $_GET["Year"];
$Month = empty($_GET['Month']) ? date("m"): $_GET["Month"];
获取当前日期
$Today = date("Ymj");
初始化日期数组
$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);
初始化星期数组
$Weekday = array("Sun","Mon","Tue","Wed","Thu","Fri","Sat");
$Weekday_count = count($Weekday);
$daynum = 0;
$space = "
";$col = 0;
打印表格头部
?>
1900)echo $Year-1;else echo $Year;?>&Month=<?php echo $Month?>" onClick="javascript:document.linked.submit();" name="Year"><< <?php echo $Year?> &Month=<?php echo $Month?>" onClick="javascript:document.linked.submit();" name="Year">>> | &Month=<?php if($Month-1 >0) if($Month-1 " onClick="javascript:document.linked.submit();" name="Month"><< <?php echo $Month;?> &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">>> | |
打印星期列表
while(list(,$Weekvalue) = each($Weekday))
echo "
".$Weekvalue." ";echo "
";打印日期列表
//当月份为4,6,9,11的时候,从数组末尾删除一个值,也就是删除31这个值.
if($Month == 4 or $Month == 6 or $Month == 9 or $Month == 11)
{
array_pop($Maxday);
$Maxday_count--;
}
//先判断月份是否为2月,如果是的话再判断年份是否为闰年,如果是的话就从数组尾部移除2个值,否则就移除3个值.
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
{
echo "
";while(list($colnum,$Dayvalue) = each($Maxday))
{
//判断当前日期为一星期中的哪一天
$DayWeek = date("w",strtotime($Year."-".$Month."-".$Dayvalue));
//当当前日期处于第1个,也就是每个月的第1天的时候,在它前面补上相应的空格子
if($Dayvalue == 1)
for($i=0;$i
echo $space;//打印每个月空出的几个格子
$daynum++;
//当打印日期的时候与当前日期字符串进行比较,如果相等就将字体标为红色.
if($Year.$Month.$Dayvalue == $Today)
{
$u1 = "";
$u2 = "";
}
else
{
$u1 = "";
$u2 = "";
}
if($DayWeek == 0 or $DayWeek == 6)
$color = "red";
else
$color = "black";
echo "
".$u1.$Dayvalue.$u2." ";//用本周第几天这个值加1,如果是7的倍数就换行退出此轮循环(换行打印)
if(($DayWeek+1) % 7 == 0)
{
$col++;
break;
}
}
echo "
";}
?>
运行效果如下:
更多关于php实现的日历程序请关注PHP中文网(www.php.cn)其他文章!