Wichtiger als die Kalenderfunktionen sind allgemeine Datumsberechnungen. Die folgende Tabelle stellt die wichtigsten Datumsfunktionen zusammen.
Funktion | Beispiel | Beschreibung | checkdate($month,$day,$year) | checkdate(10,11,2004) => TRUE (1) | Gibt TRUE zurück, wenn das angegebene Datum korrekt ist. Benötigt drei Argumente für Monat, Tag und Jahr. | date_sunrise($timestamp [, $format [, $latitude [, $longitude [, $zenith [, $gmt_offset]]]]]) | date_sunrise(time(), SUNFUNCS_RET_STRING, 38.4, -9, 90, 1) => Mon Dec 20 2004, sunrise time : 08:54 | Gibt die Zeit für den Sonnenaufgang eines Tags und Ort aus. Das Format kann mithilfe der Konstanten SUNFUNCS_RET_STRING, SUNFUNCS_RET_DOUBLE oder SUNFUNCS_RET_TIMESTAMP festgelegt werden. | date_sunset($timestamp [, $format [, $latitude [, $longitude [, $zenith [, $gmt_offset]]]]]) | date_sunset(time(), SUNFUNCS_RET_STRING, 38.4, -9, 90, 1) => Mon Dec 20 2004, sunset time : 18:13 | Gibt die Zeit für den Sonnenuntergang eines Tags und Orts aus. Das Format kann mithilfe der Konstanten SUNFUNCS_RET_STRING, SUNFUNCS_RET_DOUBLE oder SUNFUNCS_RET_TIMESTAMP festgelegt werden. | date("format",$timestamp) | date("d.M.Y") => 10.Jan.2004 | Formatiert ein Datum. | getdate($timestamp) | getdate(mktime(0,0,0,1,1,2005)) | Gibt ein assoziatives Array mit Datums- und Zeitangaben zurück. | gmdate("format",$timestamp) | gmdate("d.M.Y") => 10.Jan.2004 | Wie date(), berücksichtigt jedoch GMT. | idate("format"[,$timestamp]) | idate('Y'); | Gibt einen Zahlenwert für die Datum- oder Zeitangabe zurück. |
Hinweis: GMT ist die Kurzform für Greenwich Mean Time.
Für die Arbeit mit Daten ist oft das aktuelle Datum von großer Bedeutung. Sie sollten hierbei jedoch beachten, dass der Server sich immer auf sein eigenes Systemdatum bezieht. Sollten Sie beispielsweise Ihre Website in den USA hosten, wird das Ergebnis nicht unbedingt den Erwartungen entsprechen, vor allem dann nicht, wenn Besucher aus Europa zeitabhängig begrüßt werden sollen.
Wenden wir uns nun den wichtigsten Datumsfunktionen und ihren Parametern zu.
Einsatz von getdate()
Die Funktion getdate() gibt ein assoziatives Array mit Datums- und Zeitangaben zurück. Das Array setzt sich aus folgenden Bestandteilen zusammen:
Schlüssel | Rückgabewerte (Beispiele) | Beschreibung | "seconds" | zwischen 0 und 59 | Anzahl der Sekunden | "minutes" | zwischen 0 und 59 | Anzahl der Minuten | "hours" | zwischen 0 und 23 | Anzahl der Stunden | "mday" | zwischen 1 und 31 | Numerischer Tag des Monats | "wday" | zwischen 0 (für Sonntag) und 6 (für Samstag) | Numerischer Wochentag | "mon" | zwischen 1 und 12 | Monatszahl | "year" | Beispiele: 1999 oder 2003 | Vierstellige Jahreszahl | "yday" | zwischen 0 und 366 | Numerischer Tag des Jahres | "weekday" | zwischen Sonntag und Samstag | Ausgeschriebener Wochentag | "month" | zwischen Januar und Dezember | Ausgeschriebener Monatsname, wie Januar oder März | 0 | Abhängig vom System, typischerweise ein Wert zwischen -2147483648 und 2147483647. | Sekunden basierend auf dem Unix-Zeitcode, ähnlich den Werten, die von der Funktion time() zurückgegeben und von date() verwendet werden. |
Beispiel
<pre>
<?php
print_r(getdate());
?>
</pre>
Ausgabe
Array
(
[seconds] => 30
[minutes] => 52
[hours] => 22
[mday] => 10
[wday] => 6
[mon] => 1
[year] => 2004
[yday] => 9
[weekday] => Saturday
[month] => January
[0] => 1073771550
)
Beispiel – year
<?php
$zeit = getdate();
// Ausgabe (2004)
echo $zeit["year"];
?>
Einsatz von date()
Für die Darstellung eines Datums gibt es eine Vielzahl von Formatierungsmöglichkeiten. Die Funktion date() gibt ein Datum formatiert zurück, sodass Sie lokale Besonderheiten berücksichtigen können. Die Funktion benötigt zwei Argumente, eine Formatierungsanweisung und eine Zeitinformation als Unix-Zeitstempel. Sollte der zweite Parameter weggelassen werden, wird die aktuelle Zeit verwendet. Innerhalb der Formatieranweisung sind folgende Symbole von Bedeutung:
Symbol | Rückgabewerte (Beispiele) | Beschreibung | a | am oder pm | Kleingeschrieben: ante meridiem und post meridiem | A | AM oder PM | Großgeschrieben: ante meridiem und post meridiem | B | 000 bis 999 | Swatch-Internet-Zeit | d | 01 bis 31 | Tag des Monats, 2-stellig mit führender Null | D | Mon bis Sun | Tag der Woche als Abkürzung mit drei Buchstaben | F | January bis December | Monat als ganzes Wort | g | 1 bis 12 | 12-Stunden-Format, ohne führende Nullen | G | 0 bis 23 | 24-Stunden-Format, ohne führende Nullen | h | 01 bis 12 | 12-Stunden-Format, mit führenden Nullen | H | 00 bis 23 | 24-Stunden-Format, mit führenden Nullen | i | 00 bis 59 | Minuten mit führenden Nullen | I | (großes i) | 1 bei Sommerzeit, ansonsten 0. Fällt ein Datum in die Sommerzeit | j | 1 bis 31 | Tag des Monats ohne führende Nullen | l | (kleines 'L') | Sunday bis Saturday Ausgeschriebener Tag der Woche | L | 1 für ein Schaltjahr, ansonsten 0. | Schaltjahr oder nicht | m | 01 bis 12 | Monat als Zahl, mit führenden Nullen | M | Jan bis Dec | Monatsname als Abkürzung mit drei Buchstaben | n | 1 bis 12 | Monatszahl, ohne führende Nullen | O | +0200 | Zeitunterschied zur Greenwich Mean Time (GMT) in Stunden | r | Thu, 21 Dec 2000 16:01:07 +0200 | RFC-822-formatiertes Datum | s | 00 bis 59 | Sekunden, mit führenden Nullen | S | st, nd, rd oder th. | Zur Verwendung mit j empfohlen. Anhang der englischen Aufzählung für einen Monatstag, zwei Zeichen | t | 28 bis 31 | Anzahl der Tage in einem Monat | T | Beispiele: EST, MDT ... | Zeitzoneneinstellung des Rechners | U | Siehe auch time() | Sekunden seit Beginn des Unix-Zeitcodes (January 1 1970 00:00:00 GMT) | w | 0 (für Sonntag) bis 6 (für Samstag) | Numerischer Tag einer Woche | W | Beispiel: 42(die 42 Woche im Jahr) | ISO-8601 Wochennummer des Jahres, die Woche beginnt am Montag | y | Beispiele: 99 oder 03 | Zweistellige Ausgabe der Jahreszahl | Y | Beispiel: 1999 oder 2003 | Vierstellige Ausgabe der Jahreszahl | z | 0 bis 365 | Der Tag eines Jahres | Z | -43200 bis 43200(entspricht: -12 / +12 Stunden) | Offset der Zeitzone in Sekunden. Der Offset für Zeitzone West nach UTC ist immer negativ und für Zeitzone Ost nach UTC immer positiv. |
Achtung: Sämtliche andere Zeichen werden ignoriert und unverändert zurückgegeben.
Beispiel
<?php
// Ausgabe 10.Jan.2004 23:14:16
echo date("d.M.Y H:i:s");
?>
Hinweis: Die Funktion gmdate() leistet das Gleiche wie die Funktion date(), mit dem Unterschied, dass anstelle der lokalen Zeitzone GMT verwendet wird.
Einsatz von idate()
Die Funktion idate() gibt einen Zahlenwert für eine Datums- bzw. Zeitangabe zurück. Die Funktion benötigt zwei Argumente, eine Formatierungsanweisung und eine Zeitinformation als Unix-Zeitstempel. Sollte der zweite Parameter weggelassen werden, wird die aktuelle Zeit verwendet.
Innerhalb der Formatieranweisung sind folgende Symbole von Bedeutung:
Symbol | Beschreibung | B | Swatch-Internet-Zeit | d | Tag des Monats | h | Stunde (12:00 Format) | H | Stunde (24:00 Format) | i | Minuten | I | 1, wenn Sommerzeit, sonst 0 | L | 1, wenn Schaltjahr, sonst 0 | m | Monat | s | Sekunden | t | Tag im Monat | U | Sekunden seit Beginn der Unix-Epoche, entspricht der von time() erzeugten Ausgabe. | w | Tag der Woche, wobei 0 der Sonntag ist. | W | ISO-8601-Wochennummer. Die erste Woche beginnt am ersten Montag im Jahr. | y | Jahr (1 oder 2 Ziffern, 2006 wird als »6« zurückgegeben) | Y | Jahr (4 Ziffern) | z | Tag im Jahr | Z | Offset der Zeitzone in Sekunden |
Beispiel
<?php
// Ausgabe: 2006
echo idate("Y");
// Ausgabe: 6
echo idate("y");
?>
Hinweis: Die Funktion idate() ist erst mit PHP 5 eingeführt worden.
|