PHP 计算指定月天数
题目:
写出一个函数,参数为年份和月份,输出结果为指定月的天数。
其实这个函数完全自带了都不用写啊OTZ
所以我其实没懂他要我做什么。
首先我们需要知道一个问题:UNIX时间戳的时间范围是1902-2038年,而用PHP提供的时间戳,不能比1970早,所以范围就被限制在了1970-2038
然后很简单的使用循环来输出下拉菜单
for ($i = 1970; $i <= 2038 ; $i++) {
if ($i == date('Y')) {
echo '<option value="' . $i . '" selected>'.$i.'</option>';
} else {
echo '<option value="' . $i . '">' .$i. '</option>';
}
}
这里设定了一个初值,默认显示目前的时刻,这里用到了date
函数,扩展阅读:http://www.php.net/manual/zh/function.date.php,关于月的输出也同样。
然后我们封装一个函数
function days($year, $month) {
$days = date('t', mktime(0, 0, 0, $month, 1, $year));
return $days;
}
mktime
的扩展阅读:http://www.php.net/manual/zh/function.mktime.php
最后需要注意的是,六个参数最后三个分别是 月,日,年,而不是日月年。
这里我还使用了GET
方法,但遇到了没想到的一个小问题,关于具体原因和结果,另外开文章讲。
完整源码:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>计算指定月天数</title>
</head>
<body>
<form action="days.php" method="GET">
<select name="year">
<?php
for ($i = 1970; $i <= 2038 ; $i++) {
if ($i == date('Y')) {
echo '<option value="' . $i . '" selected>'.$i.'</option>';
} else {
echo '<option value="' . $i . '">' .$i. '</option>';
}
}
?>
</select>
<select name="month">
<?php
for ($i = 1; $i <= 12 ; $i++) {
if($i == date('n')) {
echo '<option value="' . $i . '" selected>' . $i . '</option>';
} else {
echo '<option value="' . $i . '">' . $i . '</option>';
}
}
?>
</select>
<input type="submit" value="提交">
</form>
<?php
if ($_GET) {
$year = $_GET['year'];
$month = $_GET['month'];
echo days($year, $month);
}
function days($year, $month) {
$days = date('t', mktime(0, 0, 0, $month, 1, $year));
return $days;
}
?>
</body>
</html>
植入部分
如果您觉得文章不错,可以通过赞助支持我。
如果您不希望打赏,也可以通过关闭广告屏蔽插件的形式帮助网站运作。
题目是想让你自己判断润平年,根据月份计算出月份的天数吧