当前位置: 首页 > 图文教程 > 网络编程 > PHP > php日历[测试通过]

PHP
动易数据转成dedecms的php程序
PHP中文汉字验证码
收藏的一个php小偷的核心程序
ASP和PHP都是可以删除自身的
PHP+Tidy-完美的XHTML纠错+过滤
PHP实现MVC开发得最简单的方法——模型
相对路径转化成绝对路径
如何提高MYSQL数据库的查询统计速度 select 索引应用
php下的转义字符串
PHP 中英文混合排版中处理字符串常用的函数
Linux下ZendOptimizer的安装与配置方法
给apache2.2加上mod_encoding模块後 php5.2.0 处理url出现bug
安装PHP可能遇到的问题“无法载入mysql扩展” 的解决方法
dede全站URL静态化改造[070414更正]
使用Xdebug调试和优化PHP程序之[1]
PHP与SQL注入攻击[一]
PHP与SQL注入攻击[二]
PHP与SQL注入攻击[三]
PHP和XSS跨站攻击的防范
Discuz! 5.0.0论坛程序中加入一段js代码,让会员点击下载附件前自动弹出提示窗口

PHP 中的 php日历[测试通过]


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 79 ::
收藏到网摘: n/a

一直喜欢php下的日历实现代码,测试效果不错
复制代码 代码如下:

<?php
function calendar()
{
if($_GET['ym'])
{
$year = substr($_GET['ym'],0,4);
$month = substr($_GET['ym'],4,(strlen($_GET['ym'])-4));
if($month>12)
{
$year += floor($month/12);
$month = $month % 12;
}
if($year > 2030) $year = 2030;
if($year < 1980) $year = 1980;
}
$year = isset($year) ? $year : date('Y');
$month = isset($month) ? $month : date('n');
if($year==date('Y') && $month==date('n')) $today = date('j');
if($month-1 == 0)
$prevmonth = ($year - 1)."12";
else $prevmonth = $year.($month - 1);
if($month+1 == 13)
$nextmonth = ($year+1)."1";
else $nextmonth = $year.($month+1);
$prevyear = ($year - 1).$month;
$nextyear = ($year + 1).$month;
echo <<<VKN
<table width="200" border="0" cellpadding="2" cellspacing="2">
<tr>
<td class="weekday"><a href="?ym=$prevyear"><<</a></td>
<td class="normalday"><a href="?ym=$prevmonth"><</a></td>
<td colspan="3" class="normalday">$year - $month</td>
<td class="normalday"><a href="?ym=$nextmonth">></a></td>
<td class="weekday"><a href="?ym=$nextyear">>></a></td>
</tr>
<tr>
<td width="27" class="weekday">日</td>
<td width="27" class="normalday">一</td>
<td width="27" class="normalday">二</td>
<td width="27" class="normalday">三</td>
<td width="27" class="normalday">四</td>
<td width="27" class="normalday">五</td>
<td width="27" class="weekday">六</td>
</tr>
VKN;
$nowtime = mktime(0,0,0,$month,1,$year);//当月1号转为秒
$daysofmonth = date(t,$nowtime);//当月天数
$weekofbeginday = date(w,$nowtime);//当月第一天是星期几
$weekofendday = date(w,mktime(0,0,0,$month+1,0,$year));//当月最后一天是星期几
$daysofprevmonth = date(t,mktime(0,0,0,$month,0,$year));//上个月天数
$count = 1;//计数
//列出上月后几天
for($i = 1 ; $i <= $weekofbeginday ; $i++)
{
echo "<td class='othermonth'>".($daysofprevmonth-$weekofbeginday+$i)."</td>";
$count++;
}
//当月全部
for($i = 1 ; $i <= $daysofmonth ; $i++)
{
$css = ($count%7==0 || $count%7==1)?"weekday":"normalday";
if($i == $today) $css .= "today";
echo "<td class='".$css."'>".$i."</td>";
if($count%7==0) echo "</tr><tr>";
$count++;
}
//下月前几天
for ($i = 1;$i <= 6-$weekofendday;$i++)
{
echo "<td class='othermonth'>".$i."</td>";
}
echo <<<VKN
<tr>
<td colspan="7"></td>
</tr>
</table>
VKN;
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>calendar</title>
<style type="text/css">
<!--
.weekday {
font-size: 9pt;
color: #FF0000;
text-align: center;
}
.normalday {
font-size: 9pt;
color: #000000;
text-align: center;
}
.weekdaytoday {
font-size: 9pt;
color: #FF0000;
text-align: center;
background-color: #FFD9D9;
font-weight: bold;
}
.normaldaytoday {
font-size: 9pt;
color: #000000;
text-align: center;
background-color: #DDDDDD;
font-weight: bold;
}
.othermonth {
font-size: 9pt;
font-style: italic;
color: #999999;
text-align: center;
}
-->
</style>
</head>
<body>
<?php calendar();?>
</body>
</html>