SELFPHP

SELFPHP-Druckversion
Original Adresse dieser Seite:
http://www.selfphp.de/praxisbuch/praxisbuchseite.php?site=172&group=30&page=2
© 2001-2017 E-Mail SELFPHP OHG, info@selfphp.de
© 2005-2017 E-Mail PHP5 Praxisbuch - Matthias Kannengiesser, m.kannengiesser@selfphp.de


Datumsfunktionen


Wichtiger als die Kalenderfunktionen sind allgemeine Datumsberechnungen. Die folgende Tabelle stellt die wichtigsten Datumsfunktionen zusammen.

FunktionBeispielBeschreibung
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:54Gibt 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:13Gibt 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.2004Formatiert 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.2004Wie 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üsselRückgabewerte (Beispiele)Beschreibung
"seconds"zwischen 0 und 59Anzahl der Sekunden
"minutes"zwischen 0 und 59Anzahl der Minuten
"hours"zwischen 0 und 23Anzahl der Stunden
"mday"zwischen 1 und 31Numerischer Tag des Monats
"wday"zwischen 0 (für Sonntag) und 6 (für Samstag)Numerischer Wochentag
"mon"zwischen 1 und 12Monatszahl
"year"Beispiele: 1999 oder 2003Vierstellige Jahreszahl
"yday"zwischen 0 und 366Numerischer Tag des Jahres
"weekday"zwischen Sonntag und SamstagAusgeschriebener Wochentag
"month"zwischen Januar und DezemberAusgeschriebener Monatsname, wie Januar oder März
0Abhä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
)
{PSP}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:

SymbolRückgabewerte (Beispiele)Beschreibung
aam oder pmKleingeschrieben: ante meridiem und post meridiem
AAM oder PMGroßgeschrieben: ante meridiem und post meridiem
B000 bis 999Swatch-Internet-Zeit
d01 bis 31Tag des Monats, 2-stellig mit führender Null
DMon bis SunTag der Woche als Abkürzung mit drei Buchstaben
FJanuary bis DecemberMonat als ganzes Wort
g1 bis 1212-Stunden-Format, ohne führende Nullen
G0 bis 2324-Stunden-Format, ohne führende Nullen
h01 bis 1212-Stunden-Format, mit führenden Nullen
H00 bis 2324-Stunden-Format, mit führenden Nullen
i00 bis 59Minuten mit führenden Nullen
I(großes i)1 bei Sommerzeit, ansonsten 0. Fällt ein Datum in die Sommerzeit
j1 bis 31Tag des Monats ohne führende Nullen
l(kleines 'L')Sunday bis Saturday Ausgeschriebener Tag der Woche
L1 für ein Schaltjahr, ansonsten 0.Schaltjahr oder nicht
m01 bis 12Monat als Zahl, mit führenden Nullen
MJan bis DecMonatsname als Abkürzung mit drei Buchstaben
n1 bis 12Monatszahl, ohne führende Nullen
O+0200Zeitunterschied zur Greenwich Mean Time (GMT) in Stunden
rThu, 21 Dec 2000 16:01:07 +0200RFC-822-formatiertes Datum
s00 bis 59Sekunden, mit führenden Nullen
Sst, nd, rd oder th.Zur Verwendung mit j empfohlen. Anhang der englischen Aufzählung für einen Monatstag, zwei Zeichen
t28 bis 31Anzahl der Tage in einem Monat
TBeispiele: EST, MDT ...Zeitzoneneinstellung des Rechners
USiehe auch time()Sekunden seit Beginn des Unix-Zeitcodes (January 1 1970 00:00:00 GMT)
w0 (für Sonntag) bis 6 (für Samstag)Numerischer Tag einer Woche
WBeispiel: 42(die 42 Woche im Jahr)ISO-8601 Wochennummer des Jahres, die Woche beginnt am Montag
yBeispiele: 99 oder 03Zweistellige Ausgabe der Jahreszahl
YBeispiel: 1999 oder 2003Vierstellige Ausgabe der Jahreszahl
z0 bis 365Der 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.
{PSP}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:

SymbolBeschreibung
BSwatch-Internet-Zeit
dTag des Monats
hStunde (12:00 Format)
HStunde (24:00 Format)
iMinuten
I1, wenn Sommerzeit, sonst 0
L1, wenn Schaltjahr, sonst 0
mMonat
sSekunden
tTag im Monat
USekunden seit Beginn der Unix-Epoche, entspricht der von time() erzeugten Ausgabe.
wTag der Woche, wobei 0 der Sonntag ist.
WISO-8601-Wochennummer. Die erste Woche beginnt am ersten Montag im Jahr.
yJahr (1 oder 2 Ziffern, 2006 wird als »6« zurückgegeben)
YJahr (4 Ziffern)
zTag im Jahr
ZOffset 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.