
Werbung
 Wie spät ist es ...
... denn gerade?
PHP verfügt auch über eine Datums- und Uhrzeitfunktion, die nicht nur zur Anzeige von Daten benutzt werden kann.
Das verwirrende daran ist jedoch, dass die Zeit zunächst mittels der sogenannten UNIX-Timestamp ermittelt wird. Diese beinhaltet die Anzahl der Sekunden seit dem 1.1.1970 um 00:00 Uhr. Dadurch entsteht zB ein solcher Wert: 1210375762
Dieser Wert ist jedoch, wie ich zugeben muss, in seiner momentanen Form nicht brauchbar. Stell dir vor, du willst auf deiner HP sagen, "Heute ist der 7. August" und du bekommst nur so ein merkwürdiges Zahlenspiel heraus.
Aus diesem Grund verfügt PHP über weitere Funktionen, die Uhrzeiten formatieren lassen. Die Grundlage dazu ist aber immer die UNIX-Timestamp.
<?php
$timestamp = time();
?>
Mit diesem kurzen Befehl time() wird die aktuelle UNIX-Timestamp ermittelt und - zur weiteren Verarbeitung - in der Variable timestamp gespeichert.
Um die Zeit jetzt angenehm zu formatieren gibt es die Funktion date (format, timestamp).
Für die Formatierung stehen hierbei sehr viel Möglichkeiten zur Verfügung (ich biete hier nur einen Auszug an, die vollständige Liste findet sich unter www.php.net):
Format Beschreibung Beispiel
========================================================
d Tag des Monats, zweistellig 03, 28
j Tag des Monats 7, 13
m Nummer des Monats, zweistellig 01, 11
n Nummer des Monats 2, 10
y Jahr zweistellig 99, 00
Y Jahr vierstellig 1999, 2001
H Stunde im 24-Stunden-Format, zweist. 08, 16
G Stunde im 24-Stunden-Format 7, 18
i Minuten, zweistellig 08, 45
s Sekunden, zweistellig 06, 56
w Wochentag in Zahlenwert 2, 6
PHP hat zwar auch Formate zur Anzeige von Monatsnamen und Wochentagsnamen, jedoch sind diese auf Englisch.
Um ein Datum inkl. Uhrzeit im Stil von 10.05.2008 - 01:29 Uhr auszugeben gibt es zB folgende Schreibweise:
<?php
$datum = date("d.m.Y",$timestamp);
$uhrzeit = date("H:i",$timestamp);
echo $datum," - ",$uhrzeit," Uhr";
?>
Ich habe hierbei Datum und Uhrzeit in zwei verschieden Variablen gespeichert, da ich sie eventuell auch einzeln verwenden möchte. Es wäre aber auch die Anweisung "d.m.Y - H:i" möglich.
Keine Panik - ich kann diese ganze Tabelle auch nicht auswendig, sondern schaue im Bedarfsfall immer mal wieder nach :-)
Gibst du übrigens bei der Funktion date keine UNIX-Timestamp an, wird automatisch das aktuelle Datum (und die aktuelle Uhrzeit) ermittelt :-)
Wenn du ein Datum hast und dieses in die UNIX-Timestamp umwandeln willst, gibt es auch dafür einen Befehl:
<?php
$timestamp = mktime(16,59,0,8,7,2001);
?>
Durch mktime wird diese Funktion aufgerufen und das Ergebnis wird in der Variable timestamp gespeichert. Die Werte in Klammer ergeben sich von links nach rechts durch Stunde, Minute, Sekunde, Monat, Tag, Jahr. Der Wert oben entspricht also dem 7.8.2001 um 16:59:00 Uhr.
Erinnerst du dich, dass ich vorher gesagt habe, Monatsnamen und Wochentage werde in PHP nur in Englisch angezeigt? Nun, es gibt auch eine Möglichkeit, die deutschen Namen (oder jede beliebige andere Sprache) zu verwenden. Dazu brauchen wir Arrays. Und genau darum geht es auf der nächste Seite.
|