Hallo Stanload
kann mir vllt. jemand von Euch sagen, was die folgenden beiden Zeilen Quelltext aussagen?
$start_col = date('w',mktime(0,0,0,$month,1,$year))-1;
Meine Glaskugel sagt mir:
$year enthält eine Jahreszahl.
$month enthält einen Monat
$days enthält eine Anzahl von Tagen
Schau' Dir nun im [http://de3.php.net/manual/de/function.mktime.php@title=Handbuch] an, was
mktime(0,0,0,$month,1,$year)
daraus macht: mktime erzeugt einen UNIX-Timestamp für den ersten des angegebenen Monats im angegebenen Jahr, 0 Uhr, 0 Minuten und 0 Sekunden.
Auf dieses Ergebnis wird date losgelassen, siehe
date():
d.h. nun haben wir den numerischen Wert des Wochentags dieses Monatsersten. Der Wertebereich liegt dabei zwischen 0 und 6.
Zum guten Schluss wird noch 1 subtrahiert, so dass in Abhängigkeit vom Wochentag des Monatsersten in einem bestimmten Jahr, $start_col einen Wert zwischen -1 und 5 besitzt.
$rows = ($start_col == 5 || $start_col == -1) ? ceil($days/7)+1 : ceil($days/7);
Ist der Monatserste ein Samstag ($start_col ist 5) oder Sonntag ($start_col ist -1), dann wird $rows der Wert des Ausdrucks
ceil($days/7) + 1 zugewiesen,
bei allen anderen Wochentagen
ceil($days/7)
Was ceil() zurückgibt, weißt Du nach der Handbuchlektüre bestimmt.
Ein Beispiel: Ist die Anzahl der Tage z.B. gleich 8, so liefert ceil($days/7) 2 zurück. d.b. bei Samstagen und Sonntagen enthält $rows den Wert 3, an anderen Wochentagen als Monatsersten den Wert 2.
Warum das so ist und ob meine Glaskugel mir die richtigen Informationen gegeben hat, das weiß ich nicht. Allerdings solltest Du in Zukunft bei solchen Fragen den Quellcode mit Hilfe des Handbuchs selbst analysieren können.
Freundliche Grüße
Vinzenz