php for event calendar导致我在代码中从IDE接收html表/正文/html结束标记错误

php for event calendar导致我在代码中从IDE接收html表/正文/html结束标记错误,php,calendar,Php,Calendar,所有必需的结束标记以及函数结束标记和php结束标记都存在,我无法在这里找出问题所在。错误说明元素“table”需要结束标记,元素“body”需要结束标记,元素“html”需要结束标记。以下是相关代码: <html lang="en"> <head> <meta charset="utf-8" /> <title></title> <link rel="stylesheet" type="text/css"

所有必需的结束标记以及函数结束标记和php结束标记都存在,我无法在这里找出问题所在。错误说明元素“table”需要结束标记,元素“body”需要结束标记,元素“html”需要结束标记。以下是相关代码:

<html lang="en">
<head>
    <meta charset="utf-8" />
    <title></title>
    <link rel="stylesheet" type="text/css" href="StyleSheet.css">
</head>
<body>
    <?php
    // get the today date and store them in day month year variables
    $day = date('j');
    $month = date('n');
    $year = date('Y');

    //calendar variable
   $currentTimeStamp = strtotime("$year-$month-$day");
   $monthName = date("F", $currentTimeStamp);
   $numDays = date("t", $currentTimeStamp);
   $counter = 0;




    ?>
    <table>

        <tr>
            <td>asdf</td>
            <td id ="monthandyear" colspan="5"><?php echo $monthName." ".$year; ?></td>
            <td>asdf</td>


        </tr>

        <tr>

            <td class="days">Sun</td>
            <td class="days">Mon</td>
            <td class="days">Tue</td>
            <td class="days">Wed</td>
            <td class="days">Thu</td>
            <td class="days">Fri</td>
            <td class="days">Sat</td>

        </tr>

        <?php

            echo "<tr>";

                for ($i = 1; $i < $numDays + 1; $i++; $counter++){
                    $timeStamp = strtotime(""$year-$month-$i");
                    if ($i == 1){
                        $firstDay = date("w", $timeStamp);
                        for($j = 1; $j < $firstDay + 1; $counter++){
                            echo "<td>&nbsp</td>";
                            }


                    }
                 if ($counter % 7 == 0){
                     echo "<tr></tr>"; }

                 echo "<td align = 'center'>".$i."</td>";

                }

            echo "</tr>";

        ?>
  </table> 

</body>
</html>            


asdf
asdf
太阳
周一
星期二
结婚
清华大学
星期五
坐

您的
strotime()
调用中有一个额外的前导引号:

$timeStamp = strtotime(""$year-$month-$i");
应该是

$timeStamp = strtotime("$year-$month-$i");

因此,似乎有一个PHP解析错误导致关闭标记不显示。试一试。

只有相关的代码部分,稍微清理一下:

<?php
            echo "<tr>";

                for ($i = 1; $i < $numDays + 1; $i++)
                {
                    $timeStamp = strtotime($year-$month-$i);

                    if ($i == 1){
                       echo "<td>&nbsp</td>";
                    }

                    if ($i % 7 == 0) {
                        echo "<tr></tr>";
                    }

                    echo "<td align='center'>".$i."</td>";

                }

            echo "</tr>";

        ?>

谢谢你,简单多了。在功能之外回显tr有什么意义?我这样问是因为我从一个教程中得到了这段代码,我试图理解它所有的第一个tr开始表中的第一行天。最后一个tr关闭表中最后一行的天数。中间的所有内容都是日间渲染循环。但真正的问题是:我遗漏了日偏移部分。因此,日数与日无关…sry。但你已经知道了:)