填充日历与空白单元格

时间:2016-04-22 08:31:12

标签: php calendar

我有以下(简化)代码,用于在PHP(月视图)中创建日历。

<?php

$d = date_Parse_from_format('Y-m-d',date('Y-m-d',strtotime($_GET['date'])));

// month from date
$month = $d['month'];

// year from date
$year = $d['year'];

// days in month
$days = cal_days_in_month(CAL_GREGORIAN,$month,$year);

// first day
// if sun (7) => 0
// else +1
$firstDay = date('N',strtotime($year.'-'.$month.'-1'));

if($firstDay == 7){

    $firstDay = 1;

}else{

    $firstDay = $firstDay+1;

};

// last day
$lastDay = $days;

// start day = 1
$day = 1;

// start cell = 1
$cell = 1;

echo '<table border="1" width="700">';

echo '<tr>';

echo '<td>Sun</td><td>Mon</td><td>Tue</td><td>Wed</td><td>Thu</td><td>Fri</td><td>Sat</td>';

echo '</tr>';

for($row=0;$row<ceil((($lastDay+$firstDay)-1)/7);$row++){

echo '<tr>';

for($col=1;$col<=7;$col++){

    if($day > $days){ break; };

    if($cell < $firstDay){

        echo '<td></td>';

        $cell++;

    }else{

        echo '<td>'.$day.'</td>';

        $day++;

    };

};

echo '</tr>';

};

echo '</table>';

?>

不属于该月份的第一个单元格填空,这是正常的,但在表格的末尾有一个中断。我想用空白单元填写该行的剩余天数,但我无法弄清楚如何。

我认为它必须在这里,但如何:

if($day > $days){ break; };

我希望问题很清楚,对不起我的英语!

1 个答案:

答案 0 :(得分:1)

从循环中删除代码

if($day > $days){ break; };

将if条件更改为

if($cell < $firstDay || $day > $days){

我测试了它。