Hallo,
ich lerne PHP und habe die Schleifen und die Datumsfunktionen hinter mir. Um das Ganze besser zu verstehen, stelle ich mir selber Aufgaben und versuch sie dann zu lösen.
Nun möchte ich einen einfachen Monatskalender wie den von Schattenbaum selber erstellen.
https://www.schattenbaum.net/php/kalender.php
Dazu habe ich eine Tabelle mit 7 Zellen (Mo – So) erstellt und in den einzelnen Zellen soll der fortlaufende Tag angezeigt werden bis zum Monatsende. (Das Problem, dass im Moment noch jeder Monat an einem Montag beginnt, muss ich später lösen)
Leider habe ich bei meinem Code irgendwo einen Fehler gemacht.
Die Tage werden bis zum 29. angezeigt. Dann springt das Datum in eine neue Tabellenreihe und zählt weiter. Außerdem wird die Schleife am Monatsende nicht abgebrochen, sondern zählt bis zum Ende der Tabelle.
Hier ist meine Code:
Es wäre nett wenn mir jemand genau erklärt, was ich falsch gemacht habe, damit ich das Ganze auch verstehe.
ich lerne PHP und habe die Schleifen und die Datumsfunktionen hinter mir. Um das Ganze besser zu verstehen, stelle ich mir selber Aufgaben und versuch sie dann zu lösen.
Nun möchte ich einen einfachen Monatskalender wie den von Schattenbaum selber erstellen.
https://www.schattenbaum.net/php/kalender.php
Dazu habe ich eine Tabelle mit 7 Zellen (Mo – So) erstellt und in den einzelnen Zellen soll der fortlaufende Tag angezeigt werden bis zum Monatsende. (Das Problem, dass im Moment noch jeder Monat an einem Montag beginnt, muss ich später lösen)
Leider habe ich bei meinem Code irgendwo einen Fehler gemacht.
Die Tage werden bis zum 29. angezeigt. Dann springt das Datum in eine neue Tabellenreihe und zählt weiter. Außerdem wird die Schleife am Monatsende nicht abgebrochen, sondern zählt bis zum Ende der Tabelle.
Hier ist meine Code:
HTML-Code:
<tableborder="1"> <tr> <th>Mo</th> <th>Di</th> <th>Mi</th> <th>Do</th> <th>Fr</th> <th>Sa</th> <th>So</th> </tr> <?php $tage_im_monat = date("t"); $reihen = 6; $zellen = 7; $startwert = 1; for($tr = 1; $tr <= $reihen; $tr++) { echo"<tr>"; for($td = 1; $td <= $zellen; $td++) { echo"<td>".$startwert++ ."</td>"; if($startwert == $tage_im_monat) { break; } } echo"</tr>"; } ?> </table>
Es wäre nett wenn mir jemand genau erklärt, was ich falsch gemacht habe, damit ich das Ganze auch verstehe.
Kommentar