>> MORE站长心得
>> MOREasp程序技术
>> MOREphp程序技术

PHP实例————万年历

----时间:2015-1-29 14:24:46----

和大家分享一个简易的万年历制作过程。

基本要求:

1.获取日期

2.获取给定日期是几号

3.获取给定日期是周几

4.获取月份天数

5.获取上一月和下一月

先贴一张效果图,样式做的比较丑,不喜勿喷。

\


php代码:

";

	//获取当前年
	$year=$_GET['Y']?$_GET['Y']:date('Y');

	//获取当前月
	$month=$_GET['m']?$_GET['m']:date('m');

	//获取当月有多少天
	$days=date('t',strtotime("{$year}-{$month}-1"));

	//当前是周几
	$week=date('w',strtotime("{$year}-{$month}-1"));

	//内容居中显示
	echo "
"; //打印表头 echo "

{$year}年{$month}月

"; //打印日期表格 echo ""; //打印星期 echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; //打印几号 for($i=1-$week;$i<=$days;){ echo ""; for($j=0;$j<7;$j++){ if($i>$days$i<1){ echo ""; }else{ echo ""; } $i++; } echo ""; } echo "
周日周一周二周三周四周五周六
 $i
"; //上一月和下一月算法 if($month==1){ $prevyear=$year-1; $prevmonth=12; }else{ $prevyear=$year; $prevmonth=$month-1; } if($month==12){ $nextyear=$year+1; $nextmonth=1; }else{ $nextyear=$year; $nextmonth=$month+1; } //上一月和下一月的超链接 echo "

上一月&下一月

"; echo "
"; ?>

CSS代码:

table{
	width:500px;
	height:300px;
	border:red dashed 1px;
	background:#ff00ff;
}
tr{
	text-align:center;
}
td{
	border:gray dotted 1px;
}
h1{
	font-style:italic;
	font-size:50px;
	font-family:'宋体';
}
h2 a{
	font-style:normal;
	font-size:40px;
	font-family:'黑体';
	color:purple;
}
/*组合选择器*/
tr,td,th{
	font-size:20px;
	background:gray;
}

说几点比较容易出错和用法巧妙的地方:

1.strtotime()中所计算的时间戳应该是完整的一个格式,把一个单独的年或月放进去是没有用的。

2.if语句中的条件里面,不是赋值,是等于!!!,要写 两个==。这地方太容易给忽略了。

3.原本打印的日期一直都是周日和一号对应。但是月份不同,这个日期和星期的对应关系也会有所改变,所以,在for循环中将$i-$week.就可以将当月的所有日期后退一定时间,达到日期与星期的完美对应。

4.在实现上一月和下一月的功能时,将几个变量作为参数带入,再配合一定的算法就能搞定了。具体的就看代码吧,文字也得再好也不如看两行代码效果好。


© 2005-2013 0576w版权所有 浙ICP备05040753号-1 浙公网安备 33108102000220号 站长心得 | HTML基础 | Css交流 | 程序备忘录 | Js脚本 | asp程序 | php程序 | 服务器教程 | 回到顶部