|
|
|
 |
 |
|
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 |
|
|
 |
|
|