Datum & Zeit
Oft ist es interessant zu wissen, wann etwas gespeichert wurde, deswegen unterstützt PHP auch Datums- und Uhrzeitangaben.
Das Datum und die Zeit werden von der Server Uhr abgelesen und können somit nicht von dem Anwender manipuliert werden, allerdings sollte die Server Uhr dann auch richtig gehen.
In PHP ermittelt man die Uhrzeit zuerst mit einem UNIX-Timestamp. Dieser beinhaltet alle Sekunden seit dem 1.1.1970 um 0:00 Uhr. Dadurch entsteht so ein Wert: 1329514673
Mit diesem Wert können wir noch nicht viel Anfangen, aber PHP darum um so mehr.
Aber zuerst brauchen wir den Timestamp, das geht so:
<?php $timestamp = time();?>
Mit dem Befehl time() ermitteln wir den aktuellen Timestamp und dieser wird in der Variable $timestampgespeichert.
Jetzt gibt es die Funktion date(format, timestamp)
Um jetzt ein Datum auszugeben, wenden wir den Befehldate mal an:
<?php $timestamp = time(); $datum = date("d.m.Y - H:i", $timestamp); echo $datum;?>
Die Zeichen zwischen den Buchstaben (d.m.Y) dienen zur Trennung der Werte (Tag.Monat.Jahr), man kann diese auch weglassen bzw. ändern.
Ihr könntet das Datum auch so ermitteln:
<?php $datum = date("d.m.Y - H:i"); echo $datum;?>
Dabei wird immer vom aktuellen Timestamp ausgegangen, man kann aber auch den Timestamp in einer Datei, Variable bzw. in einer Datenbank abspeichern.
Diesen kann man später abfragen und dann ausgeben.
Wann wurde das geschrieben?
Manchmal möchte man wissen, vor wie vielen Minuten, Stunden oder auch Tagen etwas geschrieben wurde.
Man könnte jetzt denken, dies würde so gehen, aber das istfalsch:
<?php $timestamp ="120"; $test = date("i", $timestamp); echo $test;?>
Hier bekommen wir als Ausgabe 02, weil 120 Sekunden 2 Minuten sind. Aber gebt dort anstatt eine 120 eine 10900ein.
Das wären dann natürlich viel mehr als 2 Minuten (181 Min.), aber als Ausgabe erhalten wir 01.
Das kommt, weil PHP immer die Minuten für eine bestimmte Uhrzeit angibt, und das ist natürlich nicht richtig.
Deswegen brauchen wir für so etwas Mathe.
Wie wir wissen, hat 1 Minute 60 Sekunden, also teilen wir die Sekunden einfach durch 60.
<?php $timestamp ="120"; echo round($timestamp /60);?>
Mit round lassen wir den Wert auf, bzw. abrunden.
Möchtet Ihr den Wert immer abrunden, so benutzt anstattround einfach floor.
Heute ist Freitag
Manchmal möchte man ausgeben: Heute ist Freitag.
PHP selber kann nur die Wochentage in der englischen Schreibweise ausgeben, aber wir möchten ja die deutsche Schreibweise benutzen.
Deswegen erstellen wir als erstes ein Array, indem wir die ganzen Wochentagsnamen speichern:
<?php $tage = array("Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag");?>
Um jetzt den richtigen Tag auszugeben, verwenden wir so eine Ausgabe: $tage[Nummer]
Um die Nummer des Tages zu bekommen, benutzen wir wieder die Date-Funktion
<?php $tag = date("w");?>
Das Format w gibt uns den Wochentag zurück.
Ihr könnt dort natürlich auch den Timestamp zu einem bestimmten Zeitpunkt angeben.
Jetzt geben wir das einfach aus:
<?php echo $tage[$tag]?>
So kann man auch Monatsnamen ausgeben lassen, allerdings fängt ein Array bei 0 an zu Nummerieren, aber es gibt keinen Monat 0.
Darum müssen wir den Werten des Array die Monatszahl zuordnen:
<?php $monate = array( 1=>"Januar", 2=>"Februar", 3=>"März", 4=>"April", 5=>"Mai", 6=>"Juni", 7=>"Juli", 8=>"August", 9=>"September", 10=>"Oktober", 11=>"November", 12=>"Dezember");?>
Danach fragen wir die Zahl des Monats ab:
<?php $monat = date("n");?>
Dies geht mit dem Format n, zum Schluss lassen wir das wieder wie oben ausgeben:
<?php echo $monate[$monat];?>
Die Ausgabe wäre: Feber