一个简单的日历类
时间:2007-03-31
来源:互联网
<?php
class calendar{
var $month;
var $year;
function __construct(){
$this->month =date("m",mktime()); //默认为当前月
$this->year =date("Y",mktime());
}
function build_HTML(){
echo "<table width='200' border='0' cellpadding='0' cellspacing='1' bgcolor='#CCCCCC' style='font-size:12px;' >
<tr align='center'>
<td height='25' bgcolor='#f4f4f4'>周日</td>
<td height='25' bgcolor='#f4f4f4'>周一</td>
<td height='25' bgcolor='#f4f4f4'>周二</td>
<td height='25' bgcolor='#f4f4f4'>周三</td>
<td height='25' bgcolor='#f4f4f4'>周四</td>
<td height='25' bgcolor='#f4f4fF'>周五</td>
<td height='25' bgcolor='#f4f4f4'>周六</td>
</tr>
<tr align='center' >";
//第一行找到每月一日的位置前面格都为空
date_default_timezone_set("Asia/Shanghai");
$month_begin_day= date("w",mktime(0,0,0,$this->month,1,$this->year));
$j=1;
for($i=1;$i<=$month_begin_day;$i++){
echo "<td height=25 bgcolor=white> </td>";
}
for(;$i<=7;$i++)
{
echo "<td height=25 bgcolor=white>$j</td>";
$j++;
}
//完毕
echo "</tr>";
$month_day =date("t",mktime(0,0,0,$this->month,1,$this->year));
for($n=1;$n<intval($month_day/7)+1;$n++)
{
echo "<tr align=center>";
while ($i<($n+1)*7+1) {
if($j<=$month_day){
echo "<td height=25 bgcolor=white>$j</td>";}
else { echo "<td height=25 bgcolor=white> </td>"; }
$i++;
$j++;
}
echo "</tr>";
}
echo "</table>" ;
}
}
?>
使用方法
<?
<?php
include("class_calendar.php");
$calendar = new calendar();
$calendar->year=2008;
$calendar->month =2;
$calendar->build_HTML();
?>
?>
作者: morsth 发布时间: 2007-03-30
作者: 默默 发布时间: 2007-04-01
仅仅用:
$month_day =date("t",mktime(0,0,0,$this->month,1,$this->year));
intval($month_day/7)+1;
这两句代码显示剩余的行数是有问题的,例如如果2月28天而正好1号是周日,那么就会多出一个空行;
同样如果30或者31天的月份,1日从周六开始,日历就会少出一行,出现一个月日期显示少一两天的情况。
这问题解决,这个类扩展显示周数才得以可能。
原因找到了,修改很容易:P
作者: suiphone 发布时间: 2007-04-05
作者: morsth 发布时间: 2007-04-06
for($n=1;$n<intval($month_day/7)+1;$n++)
把intval($month_day/7)+1拿出来单独计算,养成良好的编程习惯。:D
作者: PHPChina 发布时间: 2007-04-06
作者: dragonbase 发布时间: 2007-08-26
作者: 逆雪寒 发布时间: 2007-08-26
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28