php获取某年某月的天数

function days_in_month($month, $year) { 
                // calculate number of days in a month 
                return $month == 2 ? ($year % 4 ? 28 : ($year % 100 ? 29 : ($year % 400 ? 28 : 29))) : (($month - 1) % 7 % 2 ? 30 : 31); 
            } 

 

转载于:https://www.cnblogs.com/freespider/p/3545885.html

<think>我们被要求生成一个PHP程序来输出指定月份(2022年10月)的日历。思路:1.我们需要知道该月份的第一天是星期几,以及该月份有多少天。2.然后按照周来划分,打印出日历的格式(通常每周从周日或周一开始,这里按照常规,我们以周日为一周的第一天)。3.注意:PHP中,星期天是0,星期一是1,以此类推。步骤:a.使用mktime创建一个时间戳,指定月份为2022年10月。b.使用date函数获取该月份的第一天是星期几(用w表示,0代表星期日,6代表星期六)和该月份的天数(t表示)。c.创建一个数组来表示星期的标题(日,一,二,三,四,五,六)。d.然后开始打印表格(或者使用div等)来展示日历。首先打印星期标题。e.然后,我们需要知道这个月1号是星期几,这样我们就可以知道在1号之前需要留出几个空白位置。f.从1号开始打印,直到该月的最后一天。同时注意每7天换一行。这里我们使用表格形式输出,简单明了。注意:我们以周日为每周的第一天,那么如果某月的第一天是星期三,那么前三天(星期日、星期一、星期二)是空白,然后从星期三开始打印1号。代码示例:</think> 以下是使用PHP输出2022年10月日历的示例代码: ```php <?php function printCalendar($year, $month) { // 获取指定月份的第一天时间戳 $firstDay = mktime(0, 0, 0, $month, 1, $year); // 获取该月天数 (31) $daysInMonth = date("t", $firstDay); // 获取首日为星期几 (0=周日,6=周六) $firstDayOfWeek = date("w", $firstDay); // 星期标题 echo "<table border='1'>"; echo "<tr> <th>周日</th> <th>周一</th> <th>周二</th> <th>周三</th> <th>周四</th> <th>周五</th> <th>周六</th> </tr><tr>"; // 填充首行空白 for ($i = 0; $i < $firstDayOfWeek; $i++) { echo "<td></td>"; } // 输出日期 $currentDay = 1; for ($i = $firstDayOfWeek; $i < 7; $i++) { echo "<td>$currentDay</td>"; $currentDay++; } echo "</tr>"; // 输出剩余行 while ($currentDay <= $daysInMonth) { echo "<tr>"; for ($i = 0; $i < 7; $i++) { if ($currentDay <= $daysInMonth) { echo "<td>$currentDay</td>"; $currentDay++; } else { echo "<td></td>"; } } echo "</tr>"; } echo "</table>"; } // 输出2022年10月日历 printCalendar(2022, 10); ?> ``` ### 功能说明: 1. `mktime()`创建指定年月的时间戳 2. `date("t")`获取月份天数 3. `date("w")`获取首日星期数(0=周日) 4. 表格布局输出日历,每周7列 5. 自动处理空白日期格 6. 当前日期2022年10月的日历示例输出: ``` 周日 周一 周二 周三 周四 周五 周六 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 ``` ### 注意事项: 1. 修改`printCalendar(年, 月)`参数可输出任意月份 2. 使用CSS可优化日历样式 3. 2022年10月第一天是周六(星期6),所以首行有6个空白格[^1] [^1]: PHP日期函数参考:https://www.php.net/manual/zh/function.date.php
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值