Impressum    .    Kontakt    .    Links            srware.net auf Deutsch    srware.net on english 
minibalken
logo
minibalken
weis
news

Startseite



Allgemeines
Voraussetzungen


PHP
Variablen
Textausgabe/echo

Mathemathische Funktionen
if/else-Anweisung
for-Schleife

while-Schleife
Arrays und foreach
Dateien (Lesen/Schreiben)
Datum und Zeit in PHP
E-Mails
Cookies
Runden

MySQL
Verbindung

Daten auslesen (SELECT)
Daten hinzufügen (INSERT)
Daten löschen (DELETE)
Daten ändern (UPDATE)

Sicherheit
Eingaben maskieren

SQL Injektionen verhindern

Smarty Template-Engine
Was ist Smarty?

Installation und Einbindung
Templates anzeigen
Variablen übergeben
Code ignorieren
Schleifen mit Smarty







weis
weis
home_überschrift

Datum und Zeit in PHP



PHP bietet bereits von Haus aus viele Funktionen in Zusammenhang mit Datum und Zeit und die Verwendung ist daher sehr einfach.

Die Grundlage aller Funktionen ist dabei der sogenannte UNIX-Timestamp, mit dem PHP intern rechnet und der auch für eigene Operationen Sinn macht. Der UNIX-Timestamp ist nichts anderes als die Zeit in Sekunden vom 01.01.1970 0:00 Uhr gesehen. Dabei kommt dann eine Zahl wie 1260749485 heraus (bei einem Datum vor dem 01.01.1970 läuft der Timestamp entsprechend andersherum und wird mit einem Minus versehen). Dies mag auf den ersten Blick unhandlich und seltsam erscheinen, macht das rechnen und arbeiten mit Datumsangaben jedoch erst flexibel. Warum? Eine Zahl lässt sich sehr einfach in einer Datenbank abspeichern (z.B. fürs Anmeldedatum eines Benutzers), eine Zahl lässt sich flexibel weiterarbeiten, eine Zahl kann in verschiedene andere Formate problemlos hin und zurückverwandelt werden. Ein Datum wie 10.01.2000 zu speichern mag zwar auf den ersten Blick sinnvoll erscheinen, man stellt dabei jedoch schnell fest, dass sich damit schlecht rechnen lässt. Es ist jedoch auch garnicht nötig, denn PHP bietet von Haus aus Möglichkeiten, den Timestamp jederzeit in ein beliebiges Datumsformat hin und zurück zu verwandeln. Doch dazu später. 

Wie kann man zunächst einmal den aktuellen Timestamp ermitteln? Hierzu dient der Befehl time():





<?php
$timestamp = time();
echo $timestamp;
?>


Das obige Beispiel legt den Timestamp in der Variable $timestamp ab und gibt ihn dann per echo am Bildschirm aus.

Doch wie lässt sich der Timestamp wieder in ein richtiges Datum zurückverwandeln? Hier kommt der Befehl date zum Einsatz. Ein Beispiel macht es deutlich:

<?php
$timestamp = time();

$datum = date("d.m.Y",$timestamp);
$zeit = date("H:i",$timestamp);

echo $datum."<br>".$zeit;
?>

Die Ausgabe auf dem Bildschirm würde in diesem Fall

14.12.2009
17:01


lauten. Wie kommt dies zustande?  Der Befehl date nimmt den in $timestamp erhaltenen Wert und wandelt ihn jeweils nach den Parametern "d.m.Y" sowie "H:i" in ein für Menschen lesbares Format um. d.m.Y sorgt hier für das Datum, H:i für die Uhrzeut. Klingt komplizierter als es ist, denn diese Parameter sind genormt:

Tag
 
Parameter Beispiel
d Tag des Monats, mit führenden Nullen 01 bis 31
D Ausgeschriebener Tag Mon
l vollständig ausgeschriebener Tag Montag
j Tag des Monats, ohne führende Nullen 1 bis 31
N Aktueller Tag der Woche 0 bis 7
z Aktueller Tag des Jahres 0 bis 365

Woche
 
Parameter Beispiel
W Aktuelle Woche des Jahres 1-53

Monat
 
Parameter   Beispiel
m Monat des Jahres, mit führenden Nullen 01 bis 12
n Monat des Jahres, ohne führende Nullen 1 bis 12
M Ausgeschriebener Monat Jan
F vollständig ausgeschriebener Monat Januar
t Anzahl der Tage des Monats 28 bis 31

Jahr
Parameter   Beispiel
y zweistellige Jahreszahl 99
Y vierstellig dargestellte Jahreszahl  2009
M Ausgeschriebener Monat Jan bis Dez
L Gibt an ob das Jahr ein Schaltjahr ist 1 oder 0


Diese Parameter lassen sich natürlich auch beliebig kombinieren. So ergibt z.B:

<?php
$timestamp = time();

$datum = date("l,d.m.Y",$timestamp);

echo $datum;
?>


eine Ausgabe wie:
Samstag,19.12.2009
 
weis