我有以下(简化)代码,用于在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; };
我希望问题很清楚,对不起我的英语!
答案 0 :(得分:1)
从循环中删除代码
if($day > $days){ break; };
将if条件更改为
if($cell < $firstDay || $day > $days){
我测试了它。