1.11.1) Datum und Zeit
getdate()
<php>$datum = getdate()</php> liefert Informationen zur aktuellen Zeit, zum Wochentag, Monat und vielem mehr. Diese Funktion liefert das Ergebnis in einem assoziativen Feld zurück.
Der Anweisung <php>getdate()</php> kann man den Parameter Zeitstempel hinzufügen, mit dem man das auszulesende Datum angibt. Der Parameter Zeitstempel erwartet als Wert die Sekundenanzahl seit dem 01.01.1970. Sämtliche Zeitangaben beruhen auf diesem Datum, das auch als Beginn der UNIX-Epoche bezeichnet wird.
<php>print_r($datum)</php> veranschaulicht den Rückgabewert der Variablen <php>$datum</php>.
Übung 1
Versuche mittels <php>$datum = getdate()</php> folgende Ausgabe des aktuellen Datums durchzuführen:
Stunde: 12
Minute: 36
Sekunde: 20
Tag der Woche: 3 = Wednesday
Tag des Monats: 17
Tag des Jahres: 321
Monat: 11 = November
Jahr: 2010
Lösung
<?php
$datum=getdate();
echo "Sekunden ".$datum[seconds] . "<br>";
echo "Minuten ".$datum[minutes] . "<br>";
echo "Stunden ".$datum[hours] . "<br>";
echo "Tag des Monats ".$datum[mday] . "<br>";
echo "Tag der Woche ".$datum[wday] . "<br>";
echo "Monat ".$datum[mon] . "<br>";
echo "Jahr ".$datum[year] . "<br>";
echo "Tag des Jahres ".$datum[yday] . "<br>";
echo "Wochentag ".$datum[weekday] . "<br>";
echo "Monat ".$datum[month] . "<br><br>";
?>
Die <php>date()</php>-Anweisung erwartet als Parameter die Formatanweisungen, welche Datum-Segmente angezeigt werden sollen.
Bsp:
<php>echo date(„l d“).„ of “. date(„F Y h:i:s A“);</php> liefert:
Wednesday 17 of November 2010 12:36:16 PM
Übung 2
Versuche mittels <php>date()</php> folgende Ausgabe zu erstellen:
17.11.10 um 12:36:16
17.11.10 = 321. Tag des Jahres 2010
17-11-2010
2010-11-17
Lösung
<?php
echo date("d.m.y"). " um ".date("H:i:s")."<br>";
echo date("d.m.y"). " = ".date("z").". Tag des Jahres ".date("Y")."<br>";
echo date("d-m-Y")."<br>";
echo date("Y-m-d")."<br>";
?>
Mit date() kann man eine Zeitangabe formatieren oder auswerten. Die Zeitangabe
übergeben Sie im Parameter timestamp. Lassen Sie diesen Parameter leer, nimmt
die Funktion die aktuelle Zeit.
Der Parameter format ist ein String, der festlegt, welche Informationen über
die Zeitangabe Sie benötigen. In diesem String sind folgende Platzhalter möglich
(*: Ausgabe mit führenden Nullen):
a - „am“ oder „pm“
A - „AM“ oder „PM“
B - Tage bis Jahresende
d - Tag des Monats *( 01 – 31 )
D - Tag der Woche ( Wed – 3stellig)
F - Monatsangabe (December – ganzes Wort)
g - Stunde im 12-Stunden-Format (1-12 )
G - Stunde im 24-Stunden-Format (0-23 )
h - Stunde im 12-Stunden-Format *(01-12 )
H - Stunde im 24-Stunden-Format *(00-23 )
i - Minuten *(00-59)
I - (großes i) 1 bei Sommerzeit, 0 bei Winterzeit
j - Tag des Monats (1-31)
l - (kleines L) ausgeschriebener Wochentag (Monday)
L - Schaltjahr = 1, kein Schaltjahr = 0
m - Monat *(01-12)
n - Monat (1-12)
M - Monatsangabe (Feb – 3stellig)
O - Zeitunterschied gegenüber Greenwich (GMT) in Stunden (z.B.: +0100)
r - Formatiertes Datum (z.B.: Tue, 6 Jul 2004 22:58:15 +0200)
s - Sekunden *(00 – 59)
S - Englische Aufzählung (th für 2(second))
t - Anzahl der Tage des Monats (28 – 31)
T - Zeitzoneneinstellung des Rechners (z.B. CEST)
U - Sekunden seit Beginn der UNIX-Epoche (1.1.1970)
w - Wochentag (0(Sonntag) bis 6(Samstag))
W - Wochennummer des Jahres (z.B.: 28)
Y - Jahreszahl, vierstellig (2001)
y - Jahreszahl, zweistellig (01)
z - Tag des Jahres (z.B. 148 (entspricht 29.05.2001))
Z - Offset der Zeitzone gegenüber GTM (-43200 – 43200) in Minuten
Länder- und Spracheinstellungen ändern
Mit folgendem Code wird die deutsche Sprache für alle Werte eingestellt.
<?php
setlocale(LC_ALL, "german");
?>
Zeitfunktionen
time()
strtotime()
<?php
echo strtotime("07.05.2019 10:00:00");
?>
mktime([Stunde[, Minute[, Sekunde[, Monat[, Tag[, Jahr);
<?php
$tag = 24;
$monat = 8;
$jahr = 1978;
$geburt = mktime(0,0,0,$monat,$tag,$jahr);
$differenz = time() - $geburt;
echo ((integer)($differenz/86400))." Tage liegen zwischen dem heutigen Datum, ";
echo date("j.n.Y")." und dem ".date("j.n.Y", $geburt).".";
?>
Datumsangaben überprüfen
checkdate(Monat, Tag, Jahr)
Zeit mittels microtime
microtime(true) liefert den aktuellen UNIX-Zeitstempel mit Mikrosekunden
$zeitstempel=microtime(true);
Beispiel:
<?php
$time_start = microtime(true);
// Sleep for a while
usleep(100);
$time_end = microtime(true);
$time = $time_end - $time_start;
echo "Did nothing in $time seconds\n";
?>