Themen
Tutorials
Tools
Themenverwandte Scripte
Datum mit PHP
In diesem Tutorial ermitteln wir ein bestimmtes Datum. In Hinsicht auf Skalierbarkeit, d.h. die Möglichkeit einzelne Bereiche möglichst einfach zu erweitern, empfehle ich generell die objektorientierte Programmierung (OOP) mit PHP anzuwenden. So könnten über Parameter bestimmte Festlegungen getroffen werden wie das folgende Tutorial zeigt..
Beispiel
Es soll je einmal das gestrige, das heutige und das morgige Datum mit dem entsprechenden Wochentag angezeigt werden..
Gestern war Samstag, der 19.05.2012
Heute ist Sonntag, der 20.05.2012
Morgen ist Montag, der 21.05.2012
Das PHP-Script dazu sieht folgendermaßen aus..
Schritt 1: Die Datumsklasse
Zuerst braucht man ein paar Funktionen, welche die gesamte Arbeit abnehmen und am Ende, wie eben schon erwähnt, mit Parametern gefüttert werden muss. Diese Funktion wird in eine Klasse gepackt, diese wird dann später aufgerufen. Die Klasse beginnt so:

Die Klasse habe ich Datum genannt. Zuerst werden Variablen festgelegt (private), welche die gesamte Klasse über Verwendung finden. Der Konstruktor (__construct) holt die Parameter die sich durch die folgenden Funktionen nicht verändern und weist diese den dafür vorgesehenen Variablen zu. In diesem Beispiel handelt es sich erstens um den Fall, welcher ausgegeben werden soll (gestern, heute oder morgen) und zweitens um die Sprache in welcher die Wochentage ausgegeben werden sollen. Eine skalierbare Funktion, in welcher es möglich ist, auch später noch, beliebig viele Sprachen hinzuzufügen, könnte z.B. so aussehen:

Danach folgt die Funktion, die alles richtig sortiert und, je nach Fall, entweder den heutigen (Fall 1), den morgigen (Fall 2) oder den gestrigen Tag (Fall 3) zurückgibt..

Es ist vielleicht etwas verwirrend. Wenn es sich um den heutigen Tag handelt, hat der Sonntag ($this->d7) den Index = 0, Montag ($this->d1) den Index = 1, usw., im Falle des gestrigen Tages steht Montag ($this->d1) an erster Stelle, Dienstag ($this->d2) an zweiter, .. der Sonntag ($this->d7) rutscht ganz nach hinten. Beim dritten Fall ist das Prinzip genau umgekehrt, hier steht der Samstag ($this->d6) an erster Stelle, gefolgt von Sonntag ($this->d7).
Zum Schluss brauchen wir noch eine Funktion, die je nach Fall das entsprechende Datum formatiert zurückgibt. Die PHP-Funktion strtotime(), welche uns das Datum liefert, lässt sich dementsprechend manipulieren und addiert für morgen einen ganzen Tag dazu bzw. subtrahiert für gestern einen ganzen Tag weg.

Damit wäre die Beispielklasse komplettiert.
Schritt 2: Aufruf der Klasse und Ausgabe der Werte
Um das Datum zu erhalten muss jetzt nur noch die Klasse mit seinen Funktionen in der richtigen Reihenfolge aufgerufen werden. Als ersten Parameter wählt man zwischen 1 (heute), 2 (morgen) und 3 (gestern) aus, als zweiten Parameter dann die Sprache. Diese Werte erhält der Konstruktor in der Klasse (siehe oben in Zeile 15).

Nun erscheint das gewünschte Ergebnis. Es ist somit möglich die Klasse mehrmals aufzurufen und unterschiedliche Werte ausgeben zu lassen, was den Quellcode deutlich übersichtlicher macht.
