2016-04-22 149 views
0

我有以下(簡化)代碼用於在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

從環中刪除代碼

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

變化if條件到

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

我測試它。