挑戰php5第八章 日期時間的應用 |
|
piggy
更新時間:2009/7/7 上午 05:08:41 |
|
<?php //月曆表頭 $head = <<<calendar <tr> <td align="center">星期日</td> <td align="center">星期一</td> <td align="center">星期二</td> <td align="center">星期三</td> <td align="center">星期四</td> <td align="center">星期五</td> <td align="center">星期六</td> </tr> calendar; $timestamp = strtotime(date("Y-m-01")); $thisMonthDays = date("t",$timestamp); //該月有幾天 $thisMonthStart = date("w",$timestamp); //該月1號是該週第幾天 $body = "<tr>"; for ($i=0;$i<$thisMonthStart;$i++){ $body .= "<td align=\"center\"> </td>"; } $col = $thisMonthStart; for ($i=1;$i<=$thisMonthDays;$i++){ //顯示日期 if($col == 7){ $body .= "</tr><tr>"; $col = 0; } $body .= "<td align=\"center\">$i</td>"; $col++; } for ($i=$col;$i<7;$i++){ $body .= "<td align=\"center\"> </td>"; } $body .= "<tr>"; echo "<table width=\"100%\" border=\"1\">",$head,$body,"</table>"; ?> |
|
|
|
piggy
更新時間:2009/7/7 上午 05:18:16 |
|
1. 從$body = "<tr>";這邊開始, 後面的$body .= "<td align=\"center\"> </td>"; $body .= "</tr><tr>"; $body .= "<tr>"; 要在語法內建構欄位出來,看了好幾次都看不懂, 可以敘述一下欄位如何製作的嗎? 2. for迴圈裡的判斷式也看不太懂 請解答一下 $col = $thisMonthStart; <------它指派$thisMonthStart這個給$col是為什麼 for ($i=1;$i<=$thisMonthDays;$i++){ if($col == 7){ $body .= "</tr><tr>"; $col = 0;<---------為什麼又指派0給它 } $body .= "<td align=\"center\">$i</td>"; $col++;
|
|
|
|
文淵閣工作室
更新時間:2009/7/9 上午 09:50:46 |
|
1.這個月曆表格包含了第一列每個月的第一週,要先知道第一天是星期幾,該週如果有不是本月日期的地方,即以空白的儲存格填入。 接著就開始按順序排列日期。 結束日期所在的該週也要計算它是星期幾,如果有剩下不是該月的日期的儲存格,也要填入空白。 2.每個月一開始的日期,不會統一在星期天,而我們要顯示的月曆是由星期天開始的。所以我們要算出它第一天是星期幾並且存入$col變數中。 當它的數值等於 7 時就表示這個月曆的表格要折行了,所以在折行的同也要將這個值歸0。 |
|
|
|
|
|
|