2016-04-22 18 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($cell < $firstDay || $day > $days){ 

の状態ならばループ

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

変化からコードを削除します。

関連する問題