最近学习php循环、日期显示、GET方式请求,进而实现了一个小程序。
直接上代码:
<?php header("Content-type:text/html; charset=UTF-8"); echo ' <html> <head> <title>万年历</title> <script type="text/javascript"> function startTime() { var today=new Date() var h=today.getHours() var m=today.getMinutes() var s=today.getSeconds() m=checkTime(m) s=checkTime(s) document.getElementById('."'".'txt'."'".').innerHTML=h+":"+m+":"+s t=setTimeout('."'".'startTime()'."'".',500) } function checkTime(i) { if (i<10) { i="0" + i } return i } </script> </head> <body onload="startTime();"><br>'; $y = date('Y'); $m = date('m'); $d = date('d'); if (!preg_match("/(1[0-2])|[0-9]|0[0-9]/", $_GET['m']) && $_GET['m'] ) { echo '<script>alert("你查询月份有误!");</script>'; } elseif (!preg_match("/^d+d/", $_GET['y'])&&$_GET['y']) { echo '<script>alert("你查询年份有误!");</script>';} else { $year = $_GET['y'] ? $_GET['y'] : $y; $month = $_GET['m'] ? $_GET['m'] : $m; $days = date('t', strtotime("{$year}-{$month}-1")); $week = date('w', strtotime("{$year}-{$month}-1")); 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 "<center>"; //echo '<h1 onload="startTime()">这是一个时间:</h1>'; echo "{$year}年{$month}月一共{$days}天<br>"; echo '<h2><a href="万年历.php?y='.$prevyear.'&m='.$prevmonth.'">上一个</a>|<a href="万年历.php?y='.$nextyear.'&m='.$nextmonth.'">下一个</a>'; echo "</h2><div><h2>{$year}年{$month}月</h2>"; echo '<table width="700px" border="1px">'; echo '<tr>'; echo ' <td>周日</td> <td>周一</td> <td>周二</td> <td>周三</td> <td>周四</td> <td>周五</td> <td>周六</td>'; echo "</tr><br>"; for ($i=1-$week; $i <= $days;){ echo "<tr>"; for ($j=0; $j < 7; $j++) { if ($i > $days || $i < 1) { echo "<td> </td>"; } elseif($month==$m&&$year==$y&&$i == $d){ echo '<td bgcolor="#7FFFD4">'.$i.'</td>'; }else { echo "<td>{$i}</td>"; } $i++; } echo "</tr><br>"; } echo "</table></div>"; } echo '<div id="txt" align="right"></div></body></html>'; ?>
源码特点:
1. 通过GET提交年份与月份
2. 运用正则表达式进行输入合法性
3. 判断年份是否闰年
4. 日历框架,显示对应星期
5. 利用javascript显示当前时刻表