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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
|
<!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=utf-8" />
<title>月历表</title>
<?php
$MONTH = array ( "元月" , "一月" , "二月" , "三月" , "四月" , "五月" , "六月" , "七月" , "八月" , "九月" , "十月" , "十一月" , "十二月" );
$enMONTH = array ( "元月" , "January" , "February" , "Marcy" , "April" , "May" , "June" , "July" , "August" , "September" , "October" , "November" , "December" );
$WEEK = array ( "星期日" , "星期一" , "星期二" , "星期三" , "星期四" , "星期五" , "星期六" );
$BACKCOLOR = array ( "#FFC" , "#FFF" , "#9F6" , "#FFC" , "#6F0" , "#6F6" , "#F90" , "#F06" , "#F00" , "#FC3" , "#FF6" , "#F99" );
function PrintMon( $year , $mon )
{
date_default_timezone_set( "Asia/Shanghai" );
global $MONTH ;
global $enMONTH ;
global $WEEK ;
global $BACKCOLOR ;
$startdate = strtotime ( "1 $enMONTH[$mon] $year" ); //获取查询的年月
$enddate = strtotime ( "+1 month" , $startdate ); //获取下一个月的开始日期作为月历输出的截止时间
$theDate = getdate ( $startdate ); //把日期转化为字符串格式
$color = $BACKCOLOR [ $mon ]; //设置月历的背景颜色
echo ( "<table border=\"1\" cellspacing=\"0\" cellpadding=\"0\" bgcolor=\"$color\">" );
$ym = $year . "年" . $MONTH [ $mon ];
echo ( "<caption><h1>$ym</h1></caption>" );
echo ( "<tr>" );
for ( $i =0; $i <7; $i ++) //输出星期几
{
echo ( "<td width=\"90\", height=\"40\" align=\"center\" >" );
echo ( "<h2>$WEEK[$i]</h2>" );
echo ( "</td>" );
}
echo ( "</tr>" );
$theWeek = $theDate [wday]; //判断当天是星期几
for ( $i =0; $i <6; $i ++)
{
echo ( "<tr>" );
for ( $j =0; $j <7; $j ++)
{
echo ( "<td width=\"90\", height=\"40\" align=\"center\" >" );
if ( $startdate < $enddate && $theWeek == $j ) //把日期输出到对应的星期几所在列,并注意不要超出本月日期
{
$theDay = $theDate [mday];
echo ( "<h2>$theDay</h2>" );
$startdate = strtotime ( "+1 day" , $startdate ); //日期前移1天
$theDate = getdate ( $startdate ); //更新日期
$theWeek = ( $theWeek + 1) % 7; //更新星期
}
echo ( "</td>" );
}
echo ( "</tr>" );
if ( $startdate == $enddate ) //如果已经输出全部日期,结束循环
{
$i = 6;
}
}
echo ( "</table" );
}
?>
</head>
<body>
<form method= "post" action= "<?php echo $_SERVER['PHP_SELF'];?>" >
<h1>请输入要查看的年号和月份(查询范围为1970年1月1日至2038年)</h1>
<input type= "text" name= "myYear" >年<input type= "text" name= "myMonth" >月
<input type= "submit" >
</form>
<?php
$year = $_POST [ 'myYear' ];
$month = $_POST [ 'myMonth' ];
if ( is_numeric ( $year ) && $year >= 1970 && $year <2038)
{
if ( is_numeric ( $month ) && $month >= 1 && $month <=12)
{
PrintMon( $year , $month );
}
else if ( $month != NULL)
{
echo ( "月份不对" . "<br />" );
}
}
else if ( $year != NULL)
{
echo ( "年份不对" . "<br />" );
}
?>
</body>
</html>
|
相关文章
- 利用php的register_shutdown_function来记录php的输出日志
- 利用PHP的register_shutdown_function来记录PHP的输出日志,模拟析构函数
- PHP的输出格式化与文件简单处理
- 我如何在PHP中输出一个UTF-8 CSV, Excel将会正确读取?
- PHP 报错--Array to string conversion,请用print_r() 来输出数组
- php输出utf-8格式
- PHP 循环输出多重数组元素
- php冒泡排序实现方法,传入几个数字排序后 输出实战例子
- php对csv文件的读取,写入,输出下载操作
- php checkbox复选框值的获取与checkbox默认值输出方法