Mit den Datums- und Zeitfunktionen kannst du Datums- und Zeitangaben
vom Server, auf dem PHP läuft, abfragen und auf unterschiedlichste
Weise formatieren.
Timestamp
time() Gibt die seit Beginn der Unix-Epoche (Januar 1 1970 00:00:00
GMT) bis jetzt vergangenen Sekunden zurück, den sogenannten
Timestamp
echo time();
//Ausgabe: 1337685266
Mit der Funktion mktime() kann man aus einzelnen Datums- und Zeitangaben einen UNIX-Timestamp erzeugen.
Wichtig ist dabei die Anordnung der Argumente: mktime(Stunde, Minute, Sekunde, Monat, Tag, Jahr)
Außerdem Prüft mktime() ob die Argumente ein gültiges Datum ergeben können! Wichtig für Prüfungen bei Usereingaben.
$timestamp = mktime(0,0,0,12,12,2012);
//gibt den Timestamp für den 12. 12. 2012 zurück: 1355266800
Timestamp formatieren
Um diese "unlesbare" Zahl lesbar zu machen (zu formatieren),
verwendet man die Funktion date() .date() gibt einen formatierten
String anhand eines vorzugebenden Musters zurück. Dabei wird
entweder der angegebene Timestamp oder die gegenwärtige lokale
Zeit berücksichtigt, wenn kein Timestamp angegegeben wird.
| Format Zeichen |
Beschreibung |
Beispiel ür Rückgabewerte |
| d |
Tag des Monats, 2-stellig mit führender Null |
01 bis 31 |
| D |
Tag der Woche mit drei Buchstaben |
Mon bis Sun |
| F |
Monat als ganzes Wort, wie January oder March |
January bis December |
| g |
12-Stunden-Format, ohne führende Nullen |
1 bis 12 |
| G |
24-Stunden-Format, ohne führende Nullen |
0 bis 23 |
| h |
12-Stunden-Format, mit führenden Nullen |
01 bis 12 |
| H |
24-Stunden-Format, mit führenden Nullen |
00 bis 23 |
| i |
Minuten mit führenden Nullen |
00 bis 59 |
| j |
Tag des Monats ohne führende Nullen |
1 bis 31 |
| l (kleines 'L') |
Ausgeschriebener Tag der Woche |
Sunday bis Saturday |
| L |
Schaltjahr oder nicht |
1 für ein Schaltjahr, sonst0. |
| m |
Monat als Zahl, mit führenden Nullen |
01 bis 12 |
| M |
Monatsname mit drei Buchstaben |
Jan bis Dec |
| n |
Monatszahl, ohne führende Nullen |
1 bis 12 |
| s |
Sekunden, mit führenden Nullen |
00 bis 59 |
| t |
Anzahl der Tage des angegebenen Monats |
28 bis 31 |
| w |
Numerischer Tag einer Woche |
0 (für Sonntag) bis 6 (für Samstag) |
| W |
ISO-8601 Wochennummer des Jahres, die Woche beginnt am Montag (hinzugefügt
in PHP 4.1.0) |
Beispiel: 42 (die 42 Woche im Jahr) |
| Y |
Vierstellige Jahreszahl |
Beispiel: 1999 oder 2003 |
| y |
Jahreszahl, zweistellig |
Beispiele: 99 oder 03 |
| z |
Der Tag eines Jahres |
0 bis 365 |
Übung I1
Erstellen sie alle oben dargestellten Formatierungen mit
dem aktuellen Timestamp.
| 22 | Tag des Monats, 2-stellig mit führender Null | | Tue | Tag der Woche mit drei Buchstaben | | May | Monat als ganzes Wort | | 1 | 12-h-Format ohne führende 0 | | 13 | 24-h-Format ohne führende 0 | | 01 | 12-h-Format mit führender 0 | | 13 | 24-h-Format mit führender 0 | | 14 | Minuten mit führender 0 | | 22 | Tag des Monats ohne führende 0 | | Tuesday | ausgeschriebener Tag der Woche | | 1 | Schaltjahr oder nicht | | 05 | Monat als Zahl, führnede 0 | | 5 | Monatsname 3 Buchstaben | | 26 | Sekunden | | 31 | Anzahl der Tage des angegebenen Monats | | 2 | Numerischer Tag einer Woche | | 21 | Wochennummer des Jahres | | 12 | vierstellige Jahreszahl | | 142 | Tag eines Jahres |
Lösung
|
Deutsche Monats- und Wochentage
Will man Deutsche Wochentage erzeugen, sollte man das durch eine switch
Bedingung (siehe Schleifen) erzeugen:
<?
$wochentag = date("D");
switch($wochentag)
{
case Mon: $wochentag = "Montag"; break;
case Tue: $wochentag = "Dienstag"; break;
case Wed: $wochentag = "Mittwoch"; break;
case Thu: $wochentag = "Donnerstag";break;
case Fri: $wochentag = "Freitag"; break;
case Sat: $wochentag = "Samstag"; break;
case Sun: $wochentag = "Sonntag"; break;
}
echo "Heute ist " . $wochentag;
?>
Ausgabe:
Heute ist Dienstag
Das geht mit den Monatsnamen genauso:
<?
$monat = date("M");
switch($monat)
{
case Jan: $monat = "Januar"; break;
case Feb: $monat = "Februar"; break;
case Mar: $monat = "März"; break;
case Apr: $monat = "April"; break;
case May: $monat = "Mai"; break;
case Jun: $monat = "Juni"; break;
case Jul: $monat = "Juli"; break;
case Aug: $monat = "August"; break;
case Sep: $monat = "September"; break;
case Nov: $monat = "November"; break;
case Dec: $monat = "Dezember"; break;
}
echo "Aktuelles Monat " . $monat;
?>
Ausgabe:
Aktuelles Monat Mai
Übung
I2
Erstelle ein Script zur Altersberechnung:
Lösung
|

Übung I3
Erstellt von: ingo am 16. 3. 05
Es gibt noch weitere Möglichkeiten, deutsche Monats bzw. Tagesbezeichnungen ausgeben zu lassen. Erstelle mithilfe der Formatierung date(w) bzw. date(n) und einem nummerischen Array deutsche Datumsbezeichnungen.
Lösung

Nur angemeldete Lehrer können Lösungen sehen!
·:: Zurück weiter ::·