带日期功能的无限循环

时间:2011-03-16 14:18:21

标签: php date loops for-loop

我按照一本试图制作日历的php书。问题是,即使我按照代码写信,我也会遇到麻烦。

这是书中的循环

    for ( $i=1, $c=1, $t=date('j'), $m=date('m'), $y=date('Y');
            $c<=$this->_daysInMonth; ++$i )

这适用于我从图书网站下载的示例,但不在我的代码中。我不明白这是如何导致除了无限循环之外的任何事情。

修改

这是整个功能,现在它可以工作,但我仍然不明白如何......

    $html .= "\n\t<ul>"; // ny liste
    for ( $i=1, $c=1, $t=date('j'), $m=date('m'), $y=date('Y'); $c<=$this->_daysInMonth; ++$i) //endless loop legg til ++$c 
    {

        /*
         * Apply a "fill" class
         */
        $class = $i <= $this->_startDay ? "fill" :NULL; 

        /*
         * Add today to current date
         */
        if ( $c == $t && $m == $this->_m && $y == $this->_y )
        {
            $class = "today"; 
        }

        /*
         * Build opening and closing list for item tags
         */
        $ls = sprintf("\n\t\t<li class=\"%s\">", $class); 
        $le = "\n\t\t</li>"; 

        /*
         * add the day of the month to identify the calender box
         */
        if ( $this->_startDay < $i && $this->_daysInMonth >= $c)
        {
            $date =sprintf("\n\t\t\t<strong>%02d</strong>", $c++); 
        }
        else 
        { 
            $date="&nsbp;";
        }

        /*
         * If the current date is saturday wrap the next row
         */
        $wrap = $i != 0 && $i%7 == 0 ? "\n\t</ul>\n\t<ul>" : NULL;
        $html .= $ls . $date . $le . $wrap; 

    }

1 个答案:

答案 0 :(得分:1)

$ c在此行中增加:

$date =sprintf("\n\t\t\t<strong>%02d</strong>", $c++);