Lektion 4: Arbeiten mit Zeit und Daten

In dieser Lektion, werden wir versuchen, die vielen verschiedenen Optionen für die Arbeit mit Zeiten und Daten in PHP zu beleuchten. Wir haben in der vergangenen Lektion ein paar sehr einfache Bespiele bearbeitet, einfach um zu zeigen, was PHP eigentlich ist. In dieser Lektion betrachten wir die PHP-eigene Dokumentationdate-Function.

Zeit- und Datumsfunktionen

PHP bringt eine breite Auswahl an Functions bzgl. Zeit und Datum mit. In dieser Lektion schauen wir uns die wichtigste dieser Funktionen an: Dokumentationdate.

Mit verschiedenen Parametern kann die Dokumentationdate-Function das aktuelle Datum/Zeit in vielen verschiedenen Formaten/Formatierungen wiedergeben. Einige der nützlichsten Parameter sind:

date("y")
Gibt das aktuelle Jahr eines gegebenen Datums aus - mit dem heutigen Datum ist dies: 24
date("m")
Gibt den aktuellen Monat eines gegebenen Datums aus - mit dem heutigen Datum ist dies: 10
date("F")
Gibt den Namen des aktuellen Monats eines gegebenen Datums aus - mit dem heutigen Datum ist dies: October
date("d")
Gibt den aktuellen Tag eines Monats eines gegebenen Datums aus - mit dem heutigen Datum ist dies: 13
date("l")
Gibt den Namen des aktuellen Wochentages eines gegebenen Datums aus - mit dem heutigen Datum ist dies: Sunday
date("w")
Gibt den aktuellen Tag der Woche eines gegebenen Datums aus - mit dem heutigen Datum ist dies: 0
date("H")
Gibt die aktuelle Stunde einer gegebenen Zeit aus - mit der aktuellen Zeit ist dies: 07
date("i")
Gibt die aktuelle Minute einer gegebenen Zeit aus - mit der aktuellen Zeit ist dies: 57
date("s")
Gibt die aktuelle Sekunde einer gegebenen Zeit aus - mit der aktuellen Zeit ist dies: 52

Dieses Beispiel zeigt den Gebrauch der Dokumentationdate-Function:


	<html>
	<head>
	<title>Zeit und Datum</title>

	</head>
	<body>

	<?php 
	
	echo "<p>Heute ist " . date("l") . "</p>";

	?>
	
	</body>
	</html>
	
	

Die Zeit ist 1728806272

Und jetzt kurz innehalten ..., weil es ein wenig "nerdy" wird! Die Function Dokumentationtime() gibt die aktuelle Zeit als Anzahl der Sekunden, die seit dem 01. Januar 1970, 12:00 Uhr mittags GMT (= Greenwich Zeit) vergangen sind, aus.


	<html>
	<head>
	<title>Zeit und Datum</title>
	</head>
	<body>

	<?php   

	echo "<p>Es sind genau " . time() . " Sekunden seit dem 01. Januar 1970, 12:00 Uhr GMT vergangen</ p> ";

	?>

	</body>
	</html>
	
	

Die Zeit, die in vergangenen Sekunden seit dem 01. Januar 1970, 12:00 Uhr GMT ausgedrückt wird, ist ein sog. "timestamp" (auch UNIX timestamp) und ist ziemlich nützlich, wenn man mit Daten/Zeiten in der Zukunft oder der Vergangenheit arbeitet.

Standardmäßig nutzt die Dokumentationdate-Function den aktuellen timestamp (z.B. den aktuellen Wert von Dokumentationtime()). Aber mit einem extra Parameter kann man einen anderen timestamp festlegen und somit mit der Zukunft oder der Vergangenheit arbeiten. Im folgenden Beispiel setzen wir den timestamp auf null (0) Sekunden seit dem 01. Januar 1970, 12:00 Uhr mittags GMT. So können wir herausfinden, welcher Wochentag der 01. Januar 1970 gewesen ist.


	<html>
	<head>
	<title>Zeit und Datum</title>
	</head>
	<body>

	<?php 
	
	echo "<p>Der 01. Januar 1970 war ein " . date("l",0) . "</p>";

	?>

	</body>
	</html>
	
	

Wenn Sie nicht gerade ein Mathematik-Genie sind, wird es schnell schwierig, die Anzahl der Sekunden seit dem 01. Januar 1970, zu einem bestimmten Datum in der Zukunft oder der Vergangenheit zu zählen. Aber hier gibt es Hilfe von einer anderen raffinierten Function: Dokumentationmktime, diese führt diese Berechnung für Sie aus.

Die Syntax (Reihenfolge der Argumente) für Dokumentationmktime ist (Stunde, Minute, Sekunde, Monat, Tag, Jahr). Das folgende Beispiel konvertiert den Zeitpunkt des ersten Schrittes auf dem Mond (21. Juli 1969, 02:56 Uhr):


	<html>
	<head>
	<title>Zeit und Datum</title>
	</head>
	<body>

	<?php  
	
	echo mktime (2,56,0,7,21,1969);

	?>

	</body>
	</html>
	
	

Beachten Sie, dass eine negative Zahl ausgegeben wird, weil das Datum vor dem 01. Januar 1970 liegt

Wir können dies jetzt zusammen mit der Dokumentationdate-Function verwenden und so herausfinden, an welchem Wochentag dieses historische Ereignis stattfand.


	<html>
	<head>
	<title>Zeit und Datum</title>
	</head>
	<body>

	<?php
	
	echo date("l", mktime(2,56,0,7,21,1969));
	
	?>
	
	</body>
	</html>
	
	

Wozu kann man das verwenden?

All das mutet jetzt wahrscheinlich noch ein wenig theoretisch an. Wozu kann man eine Function wie Dokumentationtime() benutzen? Oder noch wichtiger, wann werden Sie etwas lernen, was Sie auch auf Ihren Seiten nutzen können?

Die Antwort ist, dass Sie hier Bausteine (kennen)lernen - die einzigen Beschränkungen dafür, was Sie daraus bauen, sind Ihre Kreativität und Vorstellungskraft! Ich würde wagen zu sagen, dass Sie bereits mehr gelernt haben, als Sie denken. Können Sie sich z.B. vorstellen, dass Sie eine Webseite erstellen können, die an jedem Tag der Woche ein anderes Hintergrundbild hat und das in allen Browsern funktioniert?

Natürlich können Sie! Schauen Sie sich dieses Beispiel an:


	<html>
	<head>
	<title>Zeit und Datum</title>
	</head>

	<body background="background_<?php echo date("w"); ?>.png">

	</body>
	</html>
	
	

Das obige Beispiel mit dem dynamischen Hintergrundbild erfordert nur, dass Sie sieben Bilder erstellen und diese wie folgt benennen: background_1.png, background_2.png, background_3.png usw.

Wenn ein Benutzer Ihre Seite an einem Dienstag besucht, wird die Seite das Hintergrundbild background_2.png haben, am nächsten Tag background_3.png usw. Einfach oder?

In der nächsten Lektion lernen Sie einen neuen Baustein kennen, der Schleifen und Wiederholungen in Ihrem Skript bewerkstelligen kann.

PHP macht Spaß, oder?



<< Lektion 3: Ihre erste PHP-Seite

Lektion 5: Schleifen >>