這是我從在線教程獲得的日曆腳本。它工作正常,但我想週日的列移動到結束(星期六列後):PHP日曆:將星期天的列移動到末尾
<?php
if (!isset($_REQUEST["month"])) $_REQUEST["month"] = date("n");
if (!isset($_REQUEST["year"])) $_REQUEST["year"] = date("Y");
$month_current = $_REQUEST["month"];
$year_current = $_REQUEST["year"];
$prev_year = $year_current;
$next_year = $year_current;
$month_previous = $month_current-1;
$month_next = $month_current+1;
if ($month_previous == 0)
{
$month_previous = 12;
$prev_year = $year_current - 1;
}
if ($month_next == 13)
{
$month_next = 1;
$next_year = $year_current + 1;
}
$timestamp = mktime(0,0,0,$month_current,1,$year_current);
$lastdate = date("t",$timestamp);
$thismonth = getdate ($timestamp);
$firstday = $thismonth['wday'];
?>
<?php
for ($i=0; $i<($lastdate + $firstday); $i++)
{
if(($i % 7) == 0) echo "<tr>\n";
if($i < $firstday) echo "<td></td>\n";
else echo "<td align='center' valign='middle' height='20px'>". ($i - $firstday + 1) . "</td>\n";
if(($i % 7) == 6) echo "</tr>\n";
}
?>
我試圖改變代碼到這一點:
<?php
for ($i=0; $i<($lastdate + $firstday); $i++)
{
if(($i % 7) == 1) echo "<tr>\n";
# if $i less than the first day (1), don't print the value of $i
if($i < $firstday) echo "<td></td>\n";
# print the value of $i
else echo "<td align='center' valign='middle' height='20px'>". ($i - $firstday + 1) . "</td>\n";
if(($i % 7) == 0) echo "</tr>\n";
}
?>
然後,它不當第一天從星期天開始時,在列中正確顯示。例如:http://ec-ener.eu/dump/index.php?month=8&year=2010
我該如何解決?或者,如何更改原始腳本以便我可以將星期天移動到列的末尾?
p.s.我也剛剛發現,原來的代碼似乎有一點問題/錯誤,如果你檢查HTML - TR和TD - 它產生,
<tr>
<td align='center' valign='middle' height='20px'>30</td>
<td align='center' valign='middle' height='20px'>31</td>
</table>
</td>
</tr>
它在閉幕表,只有一個關閉但沒有開放。我相信原來的單一簡單循環會生成一些無效的html!我可以修復它嗎?謝謝!
感謝。它適用於這一行+原始腳本! :-) – laukok 2010-10-03 02:04:16
大聲笑我會的!順便說一句,實際上原來的簡單單循環是誤導 - 它會產生無效的HTML!你會知道我的意思,如果你閱讀我上面發佈的編輯問題。謝謝! – laukok 2010-10-03 03:35:55