Datumsfunktionen

Funktion Bedeutung
checkdate Prüft ob sich ein Ausdruck als Datumswert interpretieren läßt.
date Formatiert ein Datum. Die Funktion liefert zudem das aktuelle Tagesdatum (das Systemdatum des Servers), wenn kein Datumswert angegeben wird (beispielsweise mit mktime, siehe unten)
getdate Liefert ein Array mit Datums- und Zeitwerten
gmmktime Erzeugt einen GMT- Zeit/ Datumswert (Zeitstempel)
mktime Erzeugt einen Zeit/ Datumswert (Zeitstempel)
gettimeofday Ermittelt die aktuelle Tageszeit als assoziatives Array.
strftime Formatiert Zeitangaben.
time Ermittelt die aktuelle Systemzeit.

date()

Mit der Date Funktion wird das aktuelle Tagesdatum des Servers ausgegeben. Durch die Reihenfolge der Formatsymbole , erhält man die gewünschte Anzeige. Im zweiten Beispiel wurde anstatt des Punktes ein Schrägstrich und Leerzeichen gesetzt.

23.01.2018
23 / 01 / 18
<?php echo date("d.m.Y") ?>
<?php echo date("d / m / y") ?>
Anzeige Symbol Bedeutung
21 H Stunde im 24 Stunden Format
09 h Stunde im 12 Stunden Format
pm a am und pm
PM A AM und PM
01 i Minuten
17 s Sekunden
23 d Tag des Monats als zweistellige Ziffer
23 j Tag des Monats ohne führende Null bei einstelligem Tagesdatum
Tue D Wochentag in abgekürzter (englischer Schreibweise)
Tuesday l (L) vollständiger Wochentag
2 w Wochentag als Zahl (0=Sonntag)
01 m Zweistellige Monatsangabe
January F Monatsname in englisch
Jan M Monatsname (abgekürzte englische Schreibweise)
31 t Zahl der Tage eines Monats
18 y zweistellige Jahreszahl
2018 Y vierstellige Jahreszahl
22 z Tag des Jahres von 1 bis 365
Die date Funktion gibt das Systemdatum aus, wenn nur ein Argument angegeben wird. Als zweites Argument kann man ein eigenes Datum mit mktime eingeben siehe unten. Ein zweites Argument als numerischer Wert steht für die Sekunden, die seit Beginn der Zählung am 1.1.1970 verstrichen sind. Zum Beispiel
echo date("d.m.Y", 0); liefert 01.01.1970. Dieses Datum ist der Beginn der Unix Zeitrechnung.
Die Formatsymbole müssen, wenn es mehr als eines ist, in Anführungsstriche eingeschlossen werden.
Negative Werte werden von date nicht akzeptiert.

Datum überprüfen
checkdate()

Mittels checkdate() läßt sich überprüfen, ob es sich um gültige Datumswerte handelt, die Argumente, sind in der Reihenfolge: Monat, Tag, Jahr

ein gültiges Datum
kein Datum
<?php
if (checkdate(1,20,98)){
echo "ein gültiges Datum";
}

echo "<br>";

if (checkdate(13,50,98)==false){
echo "kein Datum";
}
?>

Datum errechnen
mktime()

Will man mit Datumswerten rechnen, kann man mit mktime() einen Zeitstempel erzeugen, um ein bestimmtes Datum festzulegen. mktime() benötigt 6Argumente: Stunde, Minute, Sekunde, Monat, Tag, Jahr. Als siebtes Argument ist noch Sommerzeit (true) möglich. Die Funktion wird im folgenden Beispiel in die Datumsfunktion eingefügt.

22.11.2002 <?php
echo date("d.m.Y", mktime(1,1,1,11,22,2002));
?>
Um beispielsweise zum heutigen Tag 54 Tage hinzuzufügen und das entsprechende Datum auszugeben, ist folgende Schreibweise möglich.
18.03.2018 <?php
echo date("d.m.Y",mktime(1,1,1,date(m),date(d)+54,date(Y)));
?>

Siehe auch Datumsfunktionen Hier werden einige nützliche benutzerdefinierten Datumsfunktionen vorgestellt.

Datums Array
getdate()

Die getdate() Funktion erzeugt ein Array, dass alle Datumswerte liefert. Mit bestimmten Schlüsselworten kann man auf die Teile des Datums zugreifen.
Ein Datum vor dem 1.1.1970 erzeugt einen Fehler.

23. March.1991 10:30 1Sek <?php
$Wert =getdate(mktime(10,30,1,03,23,1991) );
echo $Wert["mday"], ". ";
echo $Wert["month"], ".";
echo $Wert["year"], " ";
echo $Wert["hours"], ":";
echo $Wert["minutes"], " ";
echo $Wert["seconds"], "Sek ";
?>
Schlüsselworte Bedeutung
mday Tag
month Monat (Name)
mon Monat (Zahl)
year Jahr
hours Stunde
minutes Minute
seconds Sekunde
wday Wochentag (Zahl)
weekday Wochentag (Name)

Hier das Ganze nochmal mit dem jetzigen Datum, getdate ohne Argument
Tuesday 23. January.2018 21:1 17 Sek <?php
$Jetzt =getdate();
echo $Jetzt["weekday"], " ";
echo $Jetzt["mday"], ". ";
echo $Jetzt["month"], ".";
echo $Jetzt["year"], " ";
echo $Jetzt["hours"], ":";
echo $Jetzt["minutes"], " ";
echo $Jetzt["seconds"], " Sek ";
?>
Um einen deutschen Wochentag oder Monatsnamen anzuzeigen, muß man ein Array mit den Namenselementen erzeugen. Der Index kann dann mittels wday oder mon-1 vergeben werden. Man bedenke der Monat Januar ist 0.
Dienstag den 23. Januar 2018
21:1 Uhr 17 Sek
<?php
$wochentag = array("Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag");
$monat = array("Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember");
$Jetzt =getdate();
echo $wochentag[$Jetzt["wday"]], " den ";
echo $Jetzt["mday"], ". ";
echo $monat[$Jetzt["mon"]-1], " ";
echo $Jetzt["year"], " <br> ";
echo $Jetzt["hours"], ":";
echo $Jetzt["minutes"], " Uhr ";
echo $Jetzt["seconds"], " Sek ";
?>
Selbstverständlich kann man den Index auch mit date("w") angeben. Siehe oben Wochentag als Zahl.
Dienstag <?php echo $wochentag[date("w")] ?>

Siehe auch benutzerdefinierte Datumsfunktionen / Deutsche Wochentage

Zeitfunktionen

time()
strftime()

neben date() kann man auch time() verwenden und dieses dann mit strftime() formatieren. Hier werden ähnliche Formatsymbole wie bei date erwartet, jedoch am Anfang mit dem Prozentzeichen. Ohne Formatierung, wird hier wieder die Anzahl der Sekunden seit dem 1.1.1970 angegeben.

1516737677 <?php echo time()?>
1516737677 <?php echo gmmktime()?>
21:01:17 <?php echo strftime("%H:%M:%S", time())?>

gettimeofday()

gettimeofday() liefert ein assosiatives array, wie man es schon von getdate her kennt. Es gibt 4 Elemente. Für die Formatierung wurde die date-Funktion verwendet.

1516737677
153002
-60
0
21:01:17
<?php
$Zeitwerte = gettimeofday();
echo $Zeitwerte("sec"), "<br>";
echo $Zeitwerte("usec"), "<br>";
echo $Zeitwerte("minuteswest"), "<br>";
echo $Zeitwerte("dsttime"), "<br>";
echo date("H:i:s", $Zeitwerte["sec"]);
?>
gettimeofday
Elemente Bedeutung
sec Sekunden
usec Microsekunden
minuteswest zeitliche Abstand zu GMT
dsttime Korrekturfaktor zur Sommerszeit


Rechnen mit Zeitwerten
time()

Im folgenden Beispiel wird die Systemzeit zu 2 verschiedenen Zeitpunkten ausgelesen und voeinander subtrahiert. Die Funktion sleep() verzögert die folgendenden Anweisungen, um die eingegebenen Sekunden. Die Formatierung mittels date erzeugt immer einen Datumswert.

00:05 <?php
$Start=time();
sleep(5);
$Ende=time();
$Zeit=$Ende-$Start;
echo date("i:s", $Zeit);
?>

Übersicht weiter
Webdesign / PHP / mySQL / Dreamweaver MX Tipps
Copyright © Michael Albers
www.pastorpixel.de
www.pastorpixel.de PHP mySQL Tipps