哎,看来还是迟了,现在5号了
2月4号,天气:晴,心情:还可以
复制内容到剪贴板
代码:
<?
header("Content-Type: text/html; charset=utf-8");
class kalendar
{
var $selectedDay;
var $selectedMonth;
var $selectedYear;
//获取当月第一天是数值型星期几
var $firstday;
//找出本月最后一天
var $lastday = 31;
function newkal()
{
$this->selectedDay = date("d");
$this->selectedMonth = date("m");
$this->selectedYear = date("Y");
//获取当月第一天是数值型星期几
$this->firstday = date( 'w',mktime(0,0,0,$this->selectedMonth,1,$this->selectedYear));
}
function reout($kalDate="")
{
if($kalDate=="")
{
$this->newkal();
$this->output();
}else
{
$kalDate = explode("-",$kalDate);
$this->selectedYear=$kalDate[0];
$this->selectedMonth=$kalDate[1];
if($this->selectedYear==date("Y") && $this->selectedMonth== date("m"))
{
$this->selectedDay = date("d");
}else{
$this->selectedDay = 32;
}
$this->firstday = date( 'w',mktime(0,0,0,$this->selectedMonth,1,$this->selectedYear));
$this->output();
}
}
function output()
{
do
{
$monthOrig = date( 'm',mktime(0,0,0,$this->selectedMonth,1,$this->selectedYear));
$monthTest = date( 'm',mktime(0,0,0,$this->selectedMonth,$this->lastday,$selectedYear));
if ($monthTest != $monthOrig) { $this->lastday -= 1; }
}
while($monthTest != $monthOrig);
$previousmonth = date( 'm',mktime(0,0,0,$this->selectedMonth-1,1,$this->selectedYear));
$nextmonth = date( 'm',mktime(0,0,0,$this->selectedMonth+1,1,$this->selectedYear));
//获取当月对应的英文名
$monthName = date( 'F',mktime(0,0,0,$this->selectedMonth,1,$this->selectedYear));
//显示日历表头
$days = array("日","一","二","三","四","五","六");
$dayRow = 0;
print( "<table width=\"140\" bgcolor=\"#ffFFFF\">");
print( "<tr align=\"center\">");
print( "<td height=\"19\" align=\"center\">
<a href=\"$_SERVER[PHP_SELF]?kalDate=$this->selectedYear-$previousmonth-1\">«</a>
</td>");
print( "<td colspan=\"5\" align=\"center\"><strong>$this->selectedYear-$this->selectedMonth</strong></td>");
print( "<td height=\"19\" align=\"center\">
<a href=\"$_SERVER[PHP_SELF]?kalDate=$this->selectedYear-$nextmonth-1\">»</a>
</td></tr>");
print( "<tr>\n");
for($i=0; $i<=6; $i++) {
print( "<td width=\"10%\" >$days[$i]</td>\n");
}
print( "</tr>\n");
print( "<tr>\n");
//空出当月第一天前面的空位
while($dayRow < $this->firstday) {
print( "<td><!-- This day in last month --></td>");
$dayRow += 1;
}
$day = 0;
while($day < $this->lastday) {
//下面的判断语句用于每显示7个时间位置转换到下一行
if(($dayRow % 7) == 0) {
print( "</tr>\n<tr>\n");
}
$adjusted_day = $day+1;
//当天的日期用红色显示
if($adjusted_day==$this->selectedDay){
print("<td><font color=\"#ff0000\" >$adjusted_day</font></td>");
}
else{
print("<td>$adjusted_day</td>");
}
$day += 1;
$dayRow += 1;
}
print( "\n</tr>\n</table>");
}
}
$a=new kalendar;
$date=$_GET["kalDate"];
$a->reout($date);
?>代码有些累赘,但我已经很努力了
等学会了CSS再做美化
是个日历
演示地址:
http://www.shhnzj.cn/gaojie/kalendar.class.php
[
本帖最后由 PHP杰 于 2008-2-5 00:09 编辑 ]