Kalenderfunktion

Hallo,

hoffe Ihr könnt mir helfen, ich würde gern einen belegungsplan erstellen der sich monatlich anpasst.
Die Tabelle soll ca. so aussehen:

Mo Di Mi Do Fr Sa So

                  1. … 31.
                    Objekt1 x x
                    Objekt2 x x

aber nicht jeder 1. des Monats ist ein Montag, also wie bekomme ich hin, dass er prüft welcher Wochentag der 1. des Monats ist?
Den Monat hab ich mir ja mit
$monat = strftime("%B");
echo " Monat: ".$monat."
";

rausgesucht.

Das nächste Problem wird wohl sein in der Tabelle automatisch die Wochenenden zu markieren. (in meinem Beispiel durch x markiert).

Danke euch im Voraus

Gruß
Fitz

Hallo Fitz,

Du bist mit strftime schon richtig unterwegs (http://de2.php.net/manual/de/function.strftime.php), hier könnte Dir z.B. der Parameter %a weiterhelfen. [jaja, es gibt auch andere Möglichkeiten, z.B date mit dem ersten Parameter w, aber wenn er sich schon mit der Funktion auskennt].
Das löst auch Dein zweites Problem mit der Einfärbung des Wochenendes.

MfG Georg V.

danke Georg,

aber mein Problem ist ja damit nicht gelöst, den ich hab zwar durch die funktion den Wochentag für heute, aber nicht für den ganzen Monat.

Ich dachte daran mit einem arraybefehl zu arbeiten, aber dafür ist die Ausgabe strftime("%a")wie ich fürchte ungeeignet da Array mit zahlen arbeitet.

$wt = array(„So“,„Mo“,„Di“,„Mi“,„Do“,„Fr“,„Sa“);

Ich bin aber auch für andere Vorschläge offen ihr müsst nicht mit meinen Vorgaben arbeiten, je einfacher die Lösung ist um so besser.

Gruß Fala

Hi

$aWochentage = array( 'SO', 'MO', 'DI', 'MI', 'DO', 'FR', 'SA' );
$iJetzt = time();
$iMonatsanfang = mktime( 0,0,0, date( 'm', $iJetzt ), 1, date( 'Y', $iJetzt ) );
$iAnzahlTageMonat = date( 't', $iJetzt );
echo '

‚;
for( $i=0; $i‘ . $aWochentage[date( ‚w‘, $iMonatTagTemp )] . ‚‘;
}
echo ‚‘;
for( $i=0; $i’ . date( ‚d‘, $iMonatTagTemp ) . ‚‘;
}
echo ‚‘;

So kann man es machen… allerdings könnte man da einiges noch in funktionen auslagern aber dann wird es schwer das hier nieder zu schreiben.

Gruß Lamer

Ich brauche noch 2 weitere Kalender. Aber das Thema Kalender ist mir irgendwie zu komplex. Ich war zwar in der Lage den Kalender von Lamar (für den ich sehr dankbar bin) zu erweitern aber noch macht er nicht das was er soll. aber egal meine zwei anderen Kalender:

  1. Den einen als Veranstalltungskalender (vorzugsweise wie bei Windos 1KW

2KW

3KW

4KW

und ich muss bei den einzelnen Tagen Kommentare eintragen können. Wie mach ich das am besten? Die kommentare in eine txt datei speichern?

  1. der zweite Kalender soll einfach nur das ausgewählte Datum in eine Variable packen.

Thema Kalender ist nichts für anfänger wie mich!

Gruß Fala

Hi

<?php $aWochentage = array( 'SO', 'MO', 'DI', 'MI', 'DO', 'FR', 'SA' );<br />$iJetzt = time();
$iMonatsanfang = mktime( 0,0,0, date( 'm', $iJetzt ), 1, date( 'Y', $iJetzt ) );
$iAnzahlTageMonat = date( 't', $iJetzt );

echo '

KW’;
foreach( $aWochentage as $sTag ){
echo ‚‘ . $sTag . ‚‘;
}
echo ‚‘;
$iWochenTagMonatsAnfang = date( ‚w‘, $iMonatsanfang );
echo ‚‘ . date( ‚W‘, $iMonatsanfang ) . ‚‘;
for( $i=0; $i ‚;
}
$iTagTemp = 0;
for( $i=$iWochenTagMonatsAnfang; $i‘ . date( ‚d‘, $iMonatTagTemp ) . ‚‘;
if( date( ‚w‘, $iMonatTagTemp ) == 6 ){
echo ‚‘ . ( date( ‚W‘, $iMonatTagTemp )+1 ) . ‚‘;
}
$iTagTemp++;
}
echo ‚‘;

Das macht dir die KW davor. Jetzt mußt du nur noch auf jedes Datum ein link setzen an dem du den Timestamp als getparameter übergibst und damit geht es auf eine neue Seite mit der du dann ein html form mit input verbindest.

Viel Spass dabei

Gruß Lamer

PS: ist im übrigen immer noch das alte skript nur angepasst

verdammt wie macht ihr das in paar min so ein script?
ok ist zwar dem vorher sehr ähnlich aber ich konnte nur die hälfte der Funktionen begreifen geschweige den auf die Idee kommen die so einzusetzten.

Ich weiß ich bin lässtig aber kann man da auch Pfeile drunter machen so das man zwischen den Monaten hin und her springt. Wäre das viel arbeit?

Von der logik her klingt es einfach (einfach nur die variable der aktuellen Zeitangabe +1 Monat (bzw nach dem Dezember +1 Jahr und Monate wieder auf Januar setzten) aber dazu müsste ich erst das System begreifen, und da happert es noch.

ach ja und würde es reichen wenn ich die Array umschreibe damit die Woche mit Montag anfängt oder muss ich noch mehr umschreiben?

hi

So wie du es sagst ist es schon richtig.
Um den nächsten Monat zu bekommen mußt du einfach bloß, anstatt

$iMonatsanfang = mktime( 0,0,0, date( 'm', $iJetzt ), 1, date( 'Y', $iJetzt ) );

das schreiben

$iMonatsanfang = mktime( 0,0,0, date( 'm', $iJetzt )+$iMonateMehr, 1, date( 'Y', $iJetzt ) );

Wobei du $iMonateMehr natürlich mit dem Pfeillink übergibst.
Funktioniert genauso bei Monat vorher.

Das andere, das es mit Montag anfäng ist schwieriger da du nicht nur das Array ändern mußt.

Gruß Lamer