php - 使用 div 表的静态 PHP 日历

标签 php html css

我需要一些帮助来使用 PHP 和 Div 表生成网络日历。我成功地使用 HTML 表格标签创建了日历,但这不符合 XHTML。我需要将日历表转换为 div 表。我的代码在下面,我花了一些时间来解决这个问题,但没有运气。有人可以查看下面的代码并告诉我我做错了什么吗?在此先感谢您的帮助。

<?php
                $date = time();
                $day = date('d', $date);
                $month = date('m', $date);
                $year = date('Y', $date);
                $blank = 0;

                $day_one = mktime(0,0,0, $month, 1, $year);

                $title = date('F', $day_one);

                $week_day = date('D', $day_one);

                switch ($week_day) {
                    case 'SUN': $blank = 0; break;
                    case 'MON': $blank = 1; break;
                    case 'TUE': $blank = 2; break;
                    case 'WED': $blank = 3; break;
                    case 'THU': $blank = 4; break;
                    case 'FRI': $blank = 5; break;
                    case 'SAT': $blank = 6; break;
                }

                $days_in_current_month = cal_days_in_month(0, $month, $year);

                echo "<div class='cTable'>
                        <div class='cTableRow'>
                            <div class='cTableHead'><span style='font-weight: bold;'>$title $year</span></div></div>";
                echo "<div class='cTableBody'>
                      <div class='cTableRow'>
                            <div class='cTableCell'><span style='font-weight: bold;'>Monday</span></div>
                            <div class='cTableCell'><span style='font-weight: bold;'>Tuesday</span></div>
                            <div class='cTableCell'><span style='font-weight: bold;'>Wednesday</span></div>
                            <div class='cTableCell'><span style='font-weight: bold;'>Thursday</span></div>
                            <div class='cTableCell'><span style='font-weight: bold;'>Friday</span></div>
                            <div class='cTableCell'><span style='font-weight: bold;'>Saturday</span></div>
                            <div class='cTableHead'><span style='font-weight: bold;'>Sunday</span></div>
                        </div></div>";
                $day_count = 1;

                echo "<div class='cTableBody'><div class='cTableRow'>";

                while ($blank > 0) {
                    echo "<div class='cTableCell'></div>";
                    $blank = $blank-1;
                    $day_count++;
                }

                $day_num = 1;

                while ($day_num <= $days_in_current_month) {
                    echo "<div class='cTableCell'>$day_num</div></div></div>";
                    $day_num++;
                    $day_count++;

                if ($day_count > 7) {
                    echo "<div class='cTableBody'><div class='cTableRow'>";
                    $day_count = 1;
                }
                }

                while ($day_count > 1 && $day_count <=7) {
                    echo "<div class='cTableCell'></div>";
                    $day_count++;
                }

                echo "</div></div></div>";

                ?>

Nice Calender Not So Nice Calendar

最佳答案

你的问题在这里。只有在更改行时才需要关闭 div

while ($day_num <= $days_in_current_month) {
    echo "<div class='cTableCell'>$day_num</div>";
    $day_num++;
    $day_count++;

    if ($day_count > 7) {
        echo "</div></div><div class='cTableBody'><div class='cTableRow'>";
        $day_count = 1;
     }
}

另外,为了获得第一个工作日的正确数字表示,您需要更改它

$week_day = date('w', $day_one);

因为你需要得到“w”而不是“D”

关于php - 使用 div 表的静态 PHP 日历,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42986546/

相关文章:

php - 设置 $_POST 变量

php - Laravel 5 - 找不到 Application::shutdown() 函数,是否有其他解决方案?

javascript - 是否可以将值与构造函数的参数进行比较?

javascript - 为什么在我使用 getElementById Removed Script for other ID 时附加主体 div 被删除

javascript - Materialise 表中的方形单元格

PHP DOM - 计算子节点?

javascript - 如何在div上下载图像?

javascript - 在 contenteditable 中编辑光标未显示在 Chrome 上

css - 位置 :fixed on element in ie7/8 and problems with the scrolling of the content inside it

javascript - 在ajax调用中传递计数器