Spielereien mit Zeit und DatumDas Rechnen mit Datum und Zeit ist nur selten unproblematisch, PHP stellt uns dafür zahlreiche Funktionen zur Verfügung. Wir wollen uns im folgenden ein paar davon ansehen und an Beispielen erproben.
1
3 Ein Anfang mit time() und date()Die formatierte Ausgabe von Zeit und der Vergleich verschiedener Zeitangaben ist immer wieder ein beliebtes Thema welches für viel "Freude" sorgt, besonders wenn Zeitangaben aus verschiedenen Quellen stammen und unterschiedlich formatiert sind. Eine unverzichtbare, wenn auch nicht ganz unproblematische Hilfe bei Berechnungen
oder Vergleichen ist die Unix-Zeit
(siehe http://de.wikipedia.org/wiki/Unixzeit), eine absolute Angabe der vergangenen Sekunden seit dem 1.1.1970.
echo time();
echo date('d.m.Y', 1269351978);
"time()" liefert die aktuelle Unix-Zeit im Moment des Aufrufs zurück. ![]()
Einige wichtige Parameter für eine formatierte Zeitangabe:
d, Tag mit führender Null, sonst j
m, Monat mit führender Null, sonst n
y, Jahr, zweistellig
Y, Jahr, vierstellig
H, Stunden mit führender Null, sonst G
i, Minuten mit führender Null
s, Sekunden mit führender Null
t, Anzahl der Tage des Monats
z, Tag des Jahres
w, Wochentag als 0-6 (Wochenbeginn ist mit 0 Sonntag)
U, Unix-Zeit
echo date('d.m.Y H:i:s').' entspricht '.date('U').' oder '.time();
Zeichen wie Punkt, Bindestrich, Leerzeichen können beliebig gesetzt werden. Um Wortzeichen als Literale zu verwenden, müssen diese in der bekannten Form escaped werden: "Hallo Welt". Sinnvoll ist dies natürlich nur bei kurzen Texten.
echo date('Unix-Zeit: U');
Es gibt noch weitere Parameter für eine formatierte Ausgabe, die teilweise aber Ausgaben in englischer Sprache veranlassen. Wollen wir einen Wochentag oder einen Monat lesbar ausgeben, müssen wir dies bei der Verwendung von date() selbst berechnen.
$Wochentag = array('Sonntag', 'Montag', 'Dienstag', 'Mittwoch', 'Donnerstag',_
'Freitag', 'Samstag');
echo $Wochentag[date('w')];
$Monat = array('0', 'Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli',_
'August', 'September', 'Oktober', 'November', 'Dezember');
echo $Monat[date('n')];
Der große Bruder von date(): getdate()Werden mehrere Aspekte einer Zeitangabe verwendet, kann es sinnvoll sein die Funktion "getdate()" zu verwenden, die ausgehend von einer Unix-Zeit eine Vielzahl von Zeitwerten als ein Array zurückgibt. print_r( getdate() ); "getdate" kann optional eine Unix-Zeit übergeben werden auf deren Basis die Werte berechnet werden, ohne übergebene Unix-Zeit wird die aktuelle System-Zeit verwendet. Die berechneten Werte werden immer ohne führende Null dargestellt. Weitere Informationen zu getdate, welches an dieser Stelle der Einfachheit halber nicht verwendet wird, finden sie unter http://php.net/manual/de/function.getdate.php. Einige wichtige Ergebnisse von getdate: 'seconds', Sekunden 'minutes', Minuten 'hours', Stunden 'mday', fortlaufender Tag des Monats 'wday', Tag der Woche beginnend mit 0 für Sonntag 'mon', Monat 'year', Jahr, vierstellig 'yday', fortlaufender Tag des Jahres 0 oder '0', die Unix-Zeit $Zeit = getdate(); echo $Zeit['mday'].'.'.$Zeit['mon'].'.'.$Zeit['year']; Der große Bruder von time(): mktime()Bisher haben wir lediglich die aktuelle Unix-Zeit mit time() erhalten. Um aus einer beliebigen Zeitangabe eine Unix-Zeit zu erhalten, benötigen wir die Funktion "mktime()", der wir beliebige Aspekte einer Zeitangabe von Sekunden bis zum Jahr übergeben. $Jahr = 2010; $Monat = 04; $Tag = 01; $Stunde = 12; $Minute = 0; $Sekunde = 0; echo ( mktime($Stunde,$Minute,$Sekunde,$Monat,$Tag,$Jahr) );
|
Über den Autor
Tutorial bewertenHat Ihnen dieses Tutorial gefallen? Dann bewerten Sie es jetzt! Fünf Sterne bedeutet "Sehr gut", ein Stern "Unzureichend". aktuelle Artikel
|
|||||||



|09.04.2010 | 



