Einfacher Kalender mit PHP in 100 Zeilen

Alexander Bogomolov ¦ 06.06.2009 ¦

Einfacher Kalender mit PHP in 100 Zeilen

Einfacher Kalender mit PHP in 100 Zeilen

Heute möchte ich Ihnen zeigen, wie man einen einfachen Kalender mit Hilfe von PHP erstellen kann. Dieser Kalender ist bei meiner Arbeit an dem ABI-Planer entstanden und wird in einer angepassten Form dort verwendet. Und ich möchte euch dies selbstverständlich nicht vorenthalten. Dabei gehe ich, anders als bei meinen ersten Beiträgen, jeden Schritt einzeln durch und versuche alles möglichst genau zu erklären.
Spaß mit dem Lesen!

Beschreibung:
Der Kalender wird in einer Tabelle generiert. Dies ist natürlich keine Voraussetzung, aber für dieses Bespiel am besten geeignet. Dabei befinden sich zwei Links und die aktuelle Monats- und Jahresanzeige im Kopfbereich der Tabelle. In der folgenden Zeile werden die Wochentage aufgelistet und in den folgenden die Tage.
Live-Demo

Vorbereitungen:
Als erstes sollte man den Monat und das Jahr bestimmen, die standardmäßig angezeigt werden sollen, wenn keinen weiteren Parameter übergeben wurden. Ich habe mich hierbei immer zu dem aktuellen Monat und Jahr entschieden.

$month = isset($_GET['month']) ? intval($_GET['month']) : date('n');
$year = isset($_GET['year']) ? intval($_GET['year']) : date('Y');

Somit heißt es nun: Ist eine GET-Variable „month“ und/oder „year“ übergeben, so werden deren Werte genommen, andernfalls wird der aktuelle Monat/das aktuelle Jahr genommen.

Danach sollten einige Einstellungen vorgenommen werden. Dazu gehört die Hervorhebung des heutigen Tages, Beschriftung der Wochentage, Zeichen für die Navigation, eine Zusammenfassung der Tabelle, eine Tabellenüberschrift und natürlich der Link-Dummy.

$options['today_class'] = "background-color:#FFFF00; font-weight:bold; color:#5F98B5;";
$weekdays = array('So', 'Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa');
$prev_symbol = "«";
$next_symbol = "»";
$summary = "Mein erster Kalender";
$caption = "Kalender";
$options['month_link'] 	= '<a href="'.$_SERVER['PHP_SELF'].'?month=%d&amp;year=%d">%s</a>';

Jetzt sollte man die nötigen Informationen, zur Darstellung des Kalenders, berechnen. Dazu gehören die Anzahl der Tage in diesem Monat und welcher Tag der 1. Des Monats ist. Diese Angaben werden nun in der Variablem „$total_days“ und „$day_offset“ festgehalten.

$total_days = date('t', mktime(0, 0, 0, $month, 1, $year));
$day_offset = date('w', mktime(0, 0, 0, $month, 1, $year));

Jetzt fehlen und nur noch drei Sachen um die Ausgabe des Kalenders zu beginnen. Dazu gehören die beiden Links zu den vorherigen/nachfolgenden Monaten und eine Möglichkeit um schnell zu prüfen, ob ein Tag in dem Monat auch dem jetzigen entspricht.
Also definieren wir drei neue Variablen „$n_month“, „$n_year „ und „$n_day“ und übergeben ihnen den aktuellen Monat, das aktuelle Jahr und den aktuellen Tag. In der nächsten Zeile prüfe ich gleich, ob die aktuellen Werte auch zu den angezeigten passen.

list($n_month, $n_year, $n_day) = split(', ', strftime('%m, %Y, %d'));
$day_highlight = (($n_month == $month) &amp;&amp; ($n_year == $year));

Jetzt wist der Dummy-Link mit den Werten gefüllt. „$prev_month_link“ zeigt dabei auf den vorherigen Monat des Jahres und „$next_month_link“ auf den nachfolgenden.

list($n_prev_month, $n_prev_year) = split(', ', strftime('%m, %Y', mktime(0, 0, 0, $month-1, 1, $year)));
$prev_month_link = sprintf($options['month_link'], $n_prev_month, $n_prev_year, $prev_symbol);
 
list($n_next_month, $n_next_year) = split(', ', strftime('%m, %Y', mktime(0, 0, 0, $month+1, 1, $year)));
$next_month_link = sprintf($options['month_link'], $n_next_month, $n_next_year, $next_symbol);

Ausgabe:
Nun kommen wir nun endlich zu der Ausgabe des Kalenders. Es wird zuerst der Kopf der Tabelle mit dem Titel, der Beschreibung, der Navigation und der Anzeige des Monats und Jahres ausgegeben.

echo '
<table border="0" summary="'.$summary.'">
<caption>'.$caption.'</caption>
<thead>
<tr>
<th>'.$prev_month_link.'</th>
<th colspan="5">'.strftime('%B %Y', mktime(0, 0, 0, $month, 1, $year)).'</th>
<th>'.$next_month_link.'</th>
</tr>';
echo "<tr>\n";

Gleich darauf folgt die Ausgabe der Wochentage. Dies geschieht indem wir das oben definierte Array mit einer foreach-Schleife durchgehen und die Werte in einzelne Spalten eintragen.

foreach ($weekdays as $weekday)
{
  echo "\t";
  echo "<th>".$weekday."</th>\n";
  echo "\n";
}

Nun wird der Kopfbereich abgeschlossen und der Body der Tabelle beginnt.

echo "\n";
echo "\n";
echo "</tr>
</thead>
<tbody>\n";
echo "<tr>\n";

Da längst nicht immer der erste Tag des Monats ein Sonntag ist, müssen wir die zuvorkommenden Wochentage der Woche mit leeren Zellen füllen. Dazu haben wir bei dem Vorbereitungen die Variable „$day_offset“ angelegt, die den numerischer Tag einer Woche des 1. Tages im Monat gespeichert hat. Kleines Beispiel zur Förderung des Verständnis: Der 1. Juni 2009 war ein Montag, somit hat die Variable „$day_offset“ den Wer 1.
Ist nun größer als 0, so kann der Monat nicht an einem Sonntag beginnen und wir müssen den Sonntag mit einer leeren Zelle ausgeben. Das erledigt für uns folgende, simple, Abfrage.

if ($day_offset > 0) {
  for ($i=0; $i<$day_offset; $i++)
  {
    echo "\t";
    echo '<td class="empty_cell">';
    echo "\n";
   } 
 }

Nun können wir alle Tage des Monats nach und nach ausgeben. Dabei müssen wir lediglich darauf achten, dass immer nach 7 Tagen eine neue Zeile beginnt.
Wir lassen also eine for-Schleife laufen, um alle Tage des Monats auszugeben und addieren der Variabel „$day_offset“ nach jedem Durchlauf 1 hinzu. Erreicht die Variable den Wert 7, so wird eine neue Zeile begonnen und die Variable wird wieder auf 0 gesetzt. Gleichzeitig wird bei jedem Durchlauf geprüft, ob der Tag dieses Monats auch mit dem aktuellem Tag übereinstimmt. Ist das der Fall, so wird die Zelle durch einen style-Attribut gekennzeichnet. (Die Kennzeichnung haben wir bei den Vorbereitungen in dem Array-Element „$options['today_class']“ festgehalten.

for ($day=1; $day<=$total_days; $day++)
{
  if ($day_highlight && ($day == $n_day))
  {
      echo "\t";
      echo '</td>
       <td id="day_'.$day.'" style="'.$options['today_class'].'">'.$day.'';
       echo "\n";
   }   else   {
     echo "\t";
     echo '</td>
<td id="day_'.$day.'">'.$day.'</td>';
     echo "\n";
   }
   $day_offset++;
    if ($day_offset == 7)   {
     $day_offset = 0;
     if ($day < $total_days)
     {
       echo "</tr>\n<tr>";
     }
   }
 }

Jetzt fehlt und lediglich der Schluss der Tabelle. Und zwar müssen nun die letzten Wochentage der letzten Zeile, die nicht mehr zu diesem Monat gehören, als leere Zellen ausgegeben werden. Dazu gucken wir wie viele Tage bis zum Ende der Woche uns noch fehlen.

if ($day_offset > 0)
{
  $day_offset = 7-$day_offset;
}

Und lassen eine for-Schleife die Anzah der fehlenden Tage durchlaufen und eine leere Zelle hinzufügen.

if ($day_offset > 0)
{
  for ($i=0; $i< $day_offset; $i++)
  {
    echo '<td class="empty_cell">';
     echo "\n";
  }
}

Und zu guter letzt wird die Tabelle geschlossen.

echo '</td>
</tr>
</tbody></table>
';

Fertig ist unser Kalender mit PHP. (Live-Demo)

Nachtrag:
Soeben wurde ich gefragt, ob man die Ausgabe nicht ganz auf Deutsch machen könnte. Diesen Aspekt möchte ich dann gerne Kurz aufgreifen.

Klar kann man das. Die Ausgabe des Kalenders hängt von der gesetzten Umgebung ab. Doch man kann dies echt einfach umgehen. Man muss den PHP-Kalender lediglich an einer Zeile modifizieren und eine weitere Zeile, bei der Konfiguration hinzufügen.

Wir erstellen einfach ein neues Array mit 12 Elementen, wobei der Schlüssel die Monatsnummer und der Wert der Name des Monats sind.

$weekdays = array('So', 'Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa');
$months = array('01' => 'Januar', '02' => 'Februar', '03' => 'März', '04' => 'April', '05' => 'Mai', '06' => 'Juni', '07' => 'Juli', '08' => 'August', '09' => 'September', '10' => 'Oktober', '11' => 'November', '12' => 'Dezember');

Desweiteren ändern wir die Zeile 32, in der der Kopfbereich der Tabelle generiert wird:

'.$months[strftime('%m', mktime(0, 0, 0, $month, 1, $year))].' '.$year.'

Das war’s auch schon. Jetzt richten sich die Monatsnamen immer nach dem oben definierten Array und sind somit absolut systemunabhängig.

Nachtrag 2:
Man kann den Kalender natürlich bei Montag beginnen lassen. Wie das geht habe ich weiter unten im Kommentar beschrieben.

Ich hoffe das Tutorial ist leicht verständlich geworden und hilft Ihnen bei manchen Projekten.
Über Kommentare und Social Bookmarks würde ich mich sehr freuen.

Abgelegt in Kategorie: PHP, Web-Entwicklung ¦ ,

53 Kommentare zum Artikel “Einfacher Kalender mit PHP in 100 Zeilen”

  1. Jan ¦ 09.07.2009 - 15:11

    Alex, Du bist ein Gott, genau so meinte ich das… mir fällt gerade auf, dass der Sonntag anfängt, kann man das auch noch auf Montag ändern? Haha, ich stress’ Dich bestimmt voll xD

  2. StarSt0rm ¦ 09.07.2009 - 15:19

    Klar kannst du das. Ändere einfach das Array “$weekdays” so ab, dass der Montag an erster und der Sonntag an letzer Stelle steht.

    7
    
    $weekdays = array('Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa', 'So');

    Ziehe der Variable “$day_offset”, in Zeile 17, 1 ab. Die Zeile sollte dann so aussehen:
    Sieh Kommentar von Felix
    Das war’s auch schon. ;)

  3. Jan ¦ 09.07.2009 - 15:23

    Aaaaahhh, hätt ich auch selbst drauf kommen können, is’ ja voll simpel… aber naja, PHP war noch nie meine Logik ^^

  4. Felix K. ¦ 17.07.2009 - 15:11

    hmm, ich hab das mal ausprobiert mit dem Kalender, der Montags beginnt, hab aber das Problem, dass er im November 2009 den Monat Montags und nicht Sonntags beginnen lässt.

    Demo: http://jsr.mogugge.de/termine.html
    Code: http://paste.funpic.de/175

  5. Felix K. ¦ 17.07.2009 - 16:34

    I HAZ FIXED!

    $day_offset = date('w', $time)+6;
    while ($day_offset > 6) {
      $day_offset -= 7;
    }
  6. StarSt0rm ¦ 17.07.2009 - 17:48

    Danke Felix, ist mit bis jetzt gar nicht aufgefallen.
    Wichtig wäre noch zu sagen, dass die Zeile 17 durch den Code ersetzt werden sollte.

  7. schischi ¦ 23.09.2009 - 08:12

    Hallo Profi,

    in dieser Zeile ist ein Rechtschreibfehler:
    Danach sollten einige Eisstellungen

    machs gut
    schischi

  8. StarSt0rm ¦ 23.09.2009 - 09:41

    Vielen Dank schischi.
    Habe gleich korrigiert. :)
    Liebe Grüße, Alex

  9. schischi ¦ 23.09.2009 - 12:30

    Hallo Alex,

    hier noch einer ;-)
    Das erledigt für und folgende…..

    hab noch was für den Hovereffekt bei den Wochentagen:
    $weekdays = array(‘Sonntag’ => ‘So’, ‘Montag’ => ‘Mo’, ‘Dienstag’ => ‘Di’, ‘Mittwoch’ => ‘Mi’, ‘Donnerstag’ => ‘Do’, ‘Freitag’ => ‘Fr’, ‘Samstag’ => ‘Sa’);

    und die Ausgabe:
    foreach ($weekdays as $title => $weekday)
    {
    echo “\t”;
    echo “”.$weekday.”\n”;
    echo “\n”;
    }

    bin dran, diesen Kalender mit mysql und einer Event-DB zu bestücken, das sollte so aussehen, wenn man mit der Maus über einen Link fährt, dieser als Hovereffekt die Events(z. b. 8 Events) für den Tag anzeigt!
    ich hoffe, du hast nichts dagegen, wenn ich mich diesem Script widme?
    vielleicht hast du ja einen Lösungsvorschlag parrat?

    danke im vorraus
    schischi

  10. StarSt0rm ¦ 23.09.2009 - 14:19

    Danke :S Immer diese Fehler… :(
    Natürlich habe ich nichts dagegen. Habe den Kalender damals auch für so was gebraucht. Nur ist es aus “Zeitnot” stillgelegt worden. Habe nach der Arbeit nicht sonderlich viel Lust auf eigene Projekte. Aber ich könnte ja bei Gelegenheit das, was ich schon hatte, raus kramen. Hat ja schon funktioniert, nur nicht flexibel wie ich es wollte. :(
    Freut mich, dass dir diese Anleitung wenigstens ein Bisschen helfen konnte. ;)

    Liebe Grüße, Alex

  11. Felix K. ¦ 23.09.2009 - 14:51

    Ich verwend den Kalender immer noch :)

    http://jsr.mogugge.de/termine/uebersicht.html

  12. schischi ¦ 23.09.2009 - 15:51

    gefällt mir gut, good job, ist dieser mit events aus der db oder array?

    wenn die einträge aus der DB kommen, dürft ich da mal einen Blick in das Script werfen?

    alles gute
    schischi

  13. Felix K. ¦ 23.09.2009 - 15:56

    http://paste.pa.funpic.de/252

    Ich denke, die Struktur der Datenbank lässt sich erkennen (datum DATETIME, title VARCHAR 255)

  14. schischi ¦ 23.09.2009 - 16:02

    genial und schönes script, muss ich schon sagen und vielen dank für deine schnellen bemühungen. :-)

    lass es dir gut gehen
    schischi

  15. StarSt0rm ¦ 24.09.2009 - 09:38

    Danke Felix. :) Freut mich, dass du es doch weiterentwickelt hast.

  16. DarkourX ¦ 06.11.2009 - 12:48

    Hi Star
    ich finde dein Toturial sehr gut und es hat mir sehr weitergeholfen, allerdings bin ich bei einem Problem hängengeblieben.
    Das Markieren der Tage wo ein Event stattfindet. Ich habe versucht die vorlage von Felix so umzuschreiben das ich Events über mehrere Tage hinweg markiert bekomme und das dann auch wenn ein Termin über den angezeigten Monat hinaus geht.
    Stellt sich bis jetzt als ziemlich Kompliziert dar; zumindest für mich. Vielleicht habt ihr ja eine Idee wie das zu realisieren wäre.

    MfG
    Dark

  17. schischi ¦ 07.11.2009 - 01:02

    Hallo DarkourX,

    hab dieses Script bisschen erweitert und funktioniert gut!
    kannst ja hier http://schischi.biz/ulm/index.php unter dem link
    was-wann-wo ist der Kalender, wenn er dir zusagt, dann sag bescheid!

  18. DarkourX ¦ 12.11.2009 - 12:34

    Naja das problem was ich habe ist das ich es nicht hinkriege einen Termin monatsübergreifend anzeigen zu lassen. die struktur an sich ist ja nich das ding.. aber es gibt leider auch keine allgemeine regel dafür wie man es am besten machen könnte
    aber trotzdem danke

  19. DarkourX ¦ 12.11.2009 - 12:58

    aber kannst ja trotzdem ma deinen kalender schicken vielleicht hilft mir das die richtige lösung zu finden :)

    sry für doublepost

  20. schischi ¦ 12.11.2009 - 13:21

    Hallo DarkourX,

    würde ich schon gerne machen, nur ich sehe keine E-mai Adresse?

    bitte
    schischi

  21. StarSt0rm ¦ 12.11.2009 - 17:44

    DarkourX, ich habe deine Adresse gelöscht und schischi per Mail zukommen lassen. Sorgt sonst für unnötigen Spam.

  22. Headhunt3r ¦ 07.12.2009 - 11:34

    Hallo schischi, ich würde gern dein Angebot auch in Anspruch nehmen wollen und wäre erfreut, wenn du mir deinen Code für den Kalender mal schicken könntest.
    Dein Kalender gefällt mir sehr gut, respekt :) .
    Auch an das Tutorial von hier :) .
    Mfg Basti

    PS: StarSt0rm, kannst du ihm meine E-Mail-Adresse auch übermitteln, so dass er mir den Code zusenden kann?

  23. Simon ¦ 10.12.2009 - 20:16

    Hi,
    hab da ein kleines Problem.
    Bei mir wird immer der heutige Tag angezeigt, egal in welchem Monat ich bin.

    MfG
    Simon

  24. schischi ¦ 13.12.2009 - 10:10

    Hallo Simo,

    so ohne Script geht dies fasst nicht, dass man dir helfen kann!

    wie in manchen Foren auch schon gesagt wird, die Glaskugel ist defekt ;-) .

  25. Jonathan ¦ 30.12.2009 - 20:10

    Hallo:)
    Ich finde dass Script auch sehr schön. Leider bekomme ich nicht, es einzubauen:(
    Was ich haben möchte, ist ein Kalender, der einen Aufbau/eine ‘funktionsweise’ hat, wie der, für den das Tutorial hier eigentlich geschrieben worden ist. Man sieht also immer den aktuellen Monat und kann per link vor/zurück wechseln(also die Monate). Außerdem ist der aktuelle Tag hervorgehoben(hat eine besonderse css-klasse, zB).
    Dafür muss man ja eigentlich nur die Code-Snippets oben zusammenpuzzlen.
    Jetzt würde ich aber gerne haben, dass die Woche mit Monday anfängt und mit Sunday aufhört. Wenn ich den ‘tipp/trick/..’ aus den Kommentaren “benutze”, ist die Woche zwar richtig “geordnet” aber der erste ist jeden Monat ein Donnerstag. Weiß wer Hilfe/Rat?

    Das größere Problem ist aber, dass ich diesen Kalender gerne mit meiner DB verknüpfen würde, d.h. Tage, deren Datum in der DB gespeichert sind, sollen verlinkt werden (zB mit xxx.de/?event=)

    Ich habe http://paste.pa.funpic.de/252 ausprobiert – das ist ja eine Funktion. Also habe ich dahinter ein “kalender($time();)”gebaut.

    Was ist daran falsch? Hat wer Interesse mir zu helfen/mich auf die richtige Spur zu bringen? (mir die “Lösung” zu geben?:P)

    Freue mich auf eure Antwort.

  26. schischi ¦ 31.12.2009 - 18:47

    Hallo Jonathan,

    möchtest du php lernen oder soll dies einfach per Copy and Paste passieren, obwohl ich das erstere vorziehe?

  27. Jonathan ¦ 01.01.2010 - 16:18

    Hallo schischi,
    also ehrlich gesagt geht das Copy&Paste erst einmal vor:P

    aber wenn du dir die Zeit nehmen würdest, mir das zu erklären würd mich das auf jeden Fall freuen:)

  28. schischi ¦ 01.01.2010 - 19:20

    mein Kalender Script siehst du in dem Link bei 17., wenn dir dass zusagt, dann frag doch Alexander mal ob er dir dies schickt, da es nicht so toll ist hier die e-mail Adresse im Kommentar zu hinterlassen.
    machs gut
    schischi

  29. Jonathan ¦ 01.01.2010 - 19:28

    diese ganze “liste” brauche ich gar nicht – sondern nur den eigentlichen Kalender – also http://2mad.piranho.de/kalender.jpg

    >> Alexander, würdest du mir das Script/den Code schicken? bzw schischi, du kannst ja über http://2mad.piranho.de/ mit mir kontakt aufnehmen – wär auf jeden Fall größtens nett:)

  30. StarSt0rm ¦ 01.01.2010 - 21:03

    Hallo Jonathan.
    Ich bin im Moment noch im Urlaub. Ich könnte den Code erst nächste Woche schicken.
    LG, Alex

  31. Jonathan ¦ 01.01.2010 - 21:05

    scischi hat mich schon per mail angeschrieben – trotzdem danke;D n schönen urlaub noch und n guten rutsch!:>

  32. Stefano ¦ 27.05.2011 - 16:20

    Sehr schöne Funktion, wollte das nun noch etwas erweitern und hab ein ganz banales Problem, was ich irgendwie nicht lösen kann.

    An welcher Stelle muss ich die Formatierung angeben, damit die Tage und Monate mit führender Null ausgegeben werden?

    Ich glaube ich hab nen Brett vorm Kopf :>

  33. StarSt0rm ¦ 27.05.2011 - 16:26

    Das ist an sich recht einfach:

    echo sprintf ("%02d", $zahl);
  34. Stefano ¦ 27.05.2011 - 16:30

    Hmm und wo genau? Blick das immer noch nicht :/

  35. StarSt0rm ¦ 27.05.2011 - 16:35

    In Zeilen 7 und 12:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    
    for ($day=1; $day<=$total_days; $day++)
    {
      if ($day_highlight && ($day == $n_day))
      {
          echo "\t";
          echo '</td>
           <td id="day_'.$day.'" style="'.$options['today_class'].'">'.sprintf ("%02d", $day).'';
           echo "\n";
       }   else   {
         echo "\t";
         echo '</td>
    <td id="day_'.$day.'">'.sprintf ("%02d", $day).'</td>';
         echo "\n";
       }
       $day_offset++;
        if ($day_offset == 7)   {
         $day_offset = 0;
         if ($day < $total_days)
         {
           echo "</tr>\n<tr>";
         }
       }
     }
  36. Stefano ¦ 27.05.2011 - 16:40

    Jetzt hab ich es geschnallt, vielen Dank :)
    Hab jetzt erst gesehen das letzte Kommentar vor über einen Jahr war, oops :D

  37. StarSt0rm ¦ 27.05.2011 - 17:13

    Das macht doch nichts ;) Schließlich hast du ja schnell eine Antwort bekommen.

  38. Stefan ¦ 09.09.2011 - 23:36

    Hi!

    Meine Frage ist, ob und wie man das mit Events koppeln kann? Möglichst mit mehreren Kategorien, aktivier- und deaktivierbar und einem Backend zum eintragen (Das is das kein Problem, mir entsagt sich im Moment noch der Zugriff vom Script auf die Daten im Bezug auf das jeweilige Datum).

    Danke schon im Vorhein!
    lg
    Stefan

  39. StarSt0rm ¦ 11.09.2011 - 06:35

    Moin Stefan,
    es gibt mehrere Möglichkeiten. Du kannst die Events aus der DB in ein Array speichern. Das Datum ist dann der Key und Value die Beschreibung. Dann kannst du in der for-Schleife mit array_key_exists prüfen, ob es einen Eintrag zu dem Tag gibt und falls ja ausgeben.
    Gruß
    Alex

  40. Stefan ¦ 11.09.2011 - 13:42

    Hi Alex!

    Danke für den Denkanstoß, werds mal probieren :)

    lg
    Stefan

  41. schischi ¦ 11.09.2011 - 14:05

    hi stefan,

    wenn das probieren keinen erfolg bringt, dann kann ich dir gerne ein script zukommen lassen.

    machs gut
    schischi

  42. Stefan ¦ 11.09.2011 - 18:34

    Hi!

    Also ich hab mich durchgewurschtelt und es sieht gut aus, bedarf keiner weiteren Hilfe, dennoch danke fürs Angebot, schischi!

    lg
    Stefan

  43. web2go ¦ 23.09.2011 - 01:39

    Erst einmal: WOW! ;) 2 Jahre altes Tutorial und trotzdem so schneller Support, bin wirklich begeistert ;)

    Ich werde mir diesen Code einmal zu Gemüte führen (wenn es Recht ist), da ich für mein Spiel sehr gut einen EventKalender gebrauchen kann ;)

  44. web2go ¦ 23.09.2011 - 01:55

    Leider habe ich auch das Problem, das bei mir jeder Monat mit einem Donnerstag anfängt, was natürlich nicht der Fall ist ;-) Gibts dafür noch die Lösung? :)

  45. StarSt0rm ¦ 23.09.2011 - 05:22

    Danke für deinen Lob. Ich komme zwar immer seltener zum Schreiben, aber die Kommentare lese ich immer alle!
    Zu deinem Problem: Da wirst du irgendwo einen Fehler haben ;) Ich denke ich stelle mein altes Script einfach mal hier online. Kannst dir das dann als Einheit angucken. Muss das Tutorial aber echt mal aktualisieren…

  46. web2go ¦ 23.09.2011 - 11:15

    Gute Arbeit kann man ruhig mal loben ;)

    Mit dem Script als ganzes funktioniert es ;) Vielen Dank! So kann ich damit arbeiten :)

  47. Stefan ¦ 29.09.2011 - 00:06

    StarSt0rm: Danke, aber du hast beim September beim Monats-Array den 9er vergessen (oder er hat gekündigt, weiß nicht *G*)

  48. StarSt0rm ¦ 29.09.2011 - 05:19

    Vielen Dank Stefan. Habe gleich korrigiert.

  49. Stefan ¦ 04.10.2011 - 11:46

    Gern geschehen :)

    Interessant wäre, links oder rechts die Wochennummern zu haben und entweder die als Link für die Wochenansicht zu haben oder halt einfach zwei Links, einen für die Wochen- und einen für Monatsansicht.

    Daran häng ich im Moment und auch wenn Google einiges an Antworten liefert, da steh ich noch an. Aber ich versuchs mal, so wie beim letzten Mal, wild schreien und hektisch fuchteln kann ich ja immer noch dann :)

    lg
    Stefan

  50. Peter ¦ 11.10.2011 - 11:17

    Hallo,
    also, super Kalender, danke, aber beim Kalender mit Wochenanfang “Montag” ist folgendes Problem: wenn der Sonntag auf den ersten im Monat fällt verschieben sich die Tage im Kalender.
    Beim Kalender mit Wochenanfang “Sonntag” ist alles in Ordnung. Kann mit da jemand weiterhelfen?
    Danke und Gruss
    Peter

  51. alex ¦ 23.10.2011 - 11:32

    sehr hilfreich ! Danke!!

  52. Peter ¦ 24.10.2011 - 21:06

    Hallo Leute,
    habe meinen Fehler gefunden,
    das habe ich falsch gemacht:
    $day_offset = date(‘w’, mktime(0, 0, 0, $month, 1, $year))-1;
    und so ist es richtig:
    $day_offset = date(‘w’, mktime(0, 0, 0, $month, 1, $year)-1);
    Jetzt funktioniert der Kalender wie gewünscht.
    Gruß
    Peter

  53. Johannes ¦ 16.01.2012 - 13:19

    Hallo Alexander,
    das ist wirklich ein klasse Script. Hat mir eine Menge Arbeit abgenommen. Herzlichen Dank.
    Ich hatte das gleiche Problem wie Peter. Schön, dass er auch gleich eine Lösung angeboten hat.
    Sollte im Originalscript aber noch korrigiert werden :-)

    Viele Grüße
    Johannes

Kommentar verfassen