php实现日历输出
PHP 实现日历输出
获取当前月份和年份
使用 date() 函数获取当前的年份和月份。
$year = date('Y');
$month = date('m');
计算月份的第一天是星期几
使用 date() 和 strtotime() 函数计算月份的第一天是星期几(0 表示周日,6 表示周六)。
$firstDayOfMonth = date('w', strtotime("$year-$month-01"));
计算月份的总天数
使用 date() 和 t 参数获取当前月份的总天数。
$totalDays = date('t', strtotime("$year-$month-01"));
输出日历表头
输出星期几的表头,通常从周日到周六。
echo "<table border='1'>";
echo "<tr><th>Sun</th><th>Mon</th><th>Tue</th><th>Wed</th><th>Thu</th><th>Fri</th><th>Sat</th></tr>";
输出日历内容
使用循环填充日历表格,确保日期从正确的位置开始,并在每行结束时换行。
echo "<tr>";
$dayCount = 1;
// 填充空白单元格(月份第一天之前的空格)
for ($i = 0; $i < $firstDayOfMonth; $i++) {
echo "<td></td>";
}
// 填充日期单元格
for ($day = 1; $day <= $totalDays; $day++) {
echo "<td>$day</td>";
$dayCount++;
// 每行 7 天后换行
if ($dayCount % 7 == 0) {
echo "</tr><tr>";
}
}
// 填充剩余空白单元格(月份最后一天之后的空格)
while ($dayCount % 7 != 0) {
echo "<td></td>";
$dayCount++;
}
echo "</tr>";
echo "</table>";
完整代码示例
<?php
$year = date('Y');
$month = date('m');
$firstDayOfMonth = date('w', strtotime("$year-$month-01"));
$totalDays = date('t', strtotime("$year-$month-01"));
echo "<table border='1'>";
echo "<tr><th>Sun</th><th>Mon</th><th>Tue</th><th>Wed</th><th>Thu</th><th>Fri</th><th>Sat</th></tr>";
echo "<tr>";
$dayCount = 1;
for ($i = 0; $i < $firstDayOfMonth; $i++) {
echo "<td></td>";
}
for ($day = 1; $day <= $totalDays; $day++) {
echo "<td>$day</td>";
$dayCount++;
if ($dayCount % 7 == 0) {
echo "</tr><tr>";
}
}
while ($dayCount % 7 != 0) {
echo "<td></td>";
$dayCount++;
}
echo "</tr>";
echo "</table>";
?>
自定义年份和月份
如果需要指定年份和月份,可以通过变量传递。
$year = 2023; // 自定义年份
$month = 12; // 自定义月份
添加样式美化
通过 CSS 美化日历表格,使其更美观。
echo "<style>
table {
border-collapse: collapse;
width: 300px;
text-align: center;
}
th, td {
padding: 10px;
border: 1px solid #ddd;
}
th {
background-color: #f2f2f2;
}
</style>";






