PHP 计算指定月天数
题目: 写出一个函数,参数为年份和月份,输出结果为指定月的天数。 其实这个函数完全自带了都不用写啊OTZ
所以我其实没懂他要我做什么。
首先我们需要知道一个问题:UNIX时间戳的时间范围是1902-2038年,而用PHP提供的时间戳,不能比1970早,所以范围就被限制在了1970-2038
然后很简单的使用循环来输出下拉菜单
1 for ($i = 1970; $i <= 2038 ; $i++) {
2 if ($i == date('Y')) {
3 echo '<option value="' . $i . '" selected>'.$i.'</option>';
4 } else {
5 echo '<option value="' . $i . '">' .$i. '</option>';
6 }
7 }
8
这里设定了一个初值,默认显示目前的时刻,这里用到了date
函数,扩展阅读:http://www.php.net/manual/zh/function.date.php,关于月的输出也同样。
然后我们封装一个函数
1 function days($year, $month) {
2 $days = date('t', mktime(0, 0, 0, $month, 1, $year));
3 return $days;
4 }
5
mktime
的扩展阅读:http://www.php.net/manual/zh/function.mktime.php
最后需要注意的是,六个参数最后三个分别是 月,日,年,而不是日月年。
这里我还使用了GET
方法,但遇到了没想到的一个小问题,关于具体原因和结果,另外开文章讲。
完整源码:
1<!DOCTYPE html>
2<html>
3<head>
4 <meta charset="utf-8">
5 <title>计算指定月天数</title>
6</head>
7<body>
8 <form action="days.php" method="GET">
9 <select name="year">
10 <?php
11 for ($i = 1970; $i <= 2038 ; $i++) {
12 if ($i == date('Y')) {
13 echo '<option value="' . $i . '" selected>'.$i.'</option>';
14 } else {
15 echo '<option value="' . $i . '">' .$i. '</option>';
16 }
17 }
18 ?>
19 </select>
20 <select name="month">
21 <?php
22 for ($i = 1; $i <= 12 ; $i++) {
23 if($i == date('n')) {
24 echo '<option value="' . $i . '" selected>' . $i . '</option>';
25 } else {
26 echo '<option value="' . $i . '">' . $i . '</option>';
27 }
28 }
29 ?>
30 </select>
31 <input type="submit" value="提交">
32 </form>
33 <?php
34 if ($_GET) {
35 $year = $_GET['year'];
36 $month = $_GET['month'];
37 echo days($year, $month);
38 }
39
40 function days($year, $month) {
41 $days = date('t', mktime(0, 0, 0, $month, 1, $year));
42 return $days;
43 }
44 ?>
45</body>
46</html>
47
评论 (1)
题目是想让你自己判断润平年,根据月份计算出月份的天数吧