php万年历

最近学习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>&nbsp</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显示当前时刻表

ded3
原文地址:https://www.cnblogs.com/dedeblog/p/6029391.html