Signatur
Beschreibung
getdate() zerlegt einen Unix-Timestamp in seine einzelnen Datums- und Zeitbestandteile und gibt diese als assoziatives Array zurück. Wird kein Timestamp übergeben, wird die aktuelle Zeit (time()) verwendet.
Das zurückgegebene Array enthält folgende Schlüssel: seconds (Sekunden, 0–59), minutes (Minuten, 0–59), hours (Stunden, 0–23), mday (Tag des Monats, 1–31), wday (Wochentag als Zahl, 0=Sonntag bis 6=Samstag), mon (Monat als Zahl, 1–12), year (Jahr, vierstellig), yday (Tag des Jahres, 0–365), weekday (vollständiger Wochentag auf Englisch), month (vollständiger Monatsname auf Englisch) sowie 0 (der Timestamp selbst).
getdate() ist besonders nützlich, wenn einzelne Datumskomponenten schnell und lesbar ausgelesen werden sollen, ohne den Umweg über date() und anschließendes Parsen zu gehen. Für komplexere Datumsverarbeitung empfiehlt sich die objektorientierte Klasse DateTime.
Hinweis: Die Textfelder weekday und month werden immer auf Englisch ausgegeben, unabhängig von der eingestellten Locale.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $timestamp | int | time() | Ein optionaler Unix-Timestamp als Integer. Wird er weggelassen, wird die aktuelle Zeit verwendet. |
Rückgabewert
seconds, minutes, hours, mday, wday, mon, year, yday, weekday, month und 0 (Timestamp) zurück.Beispiele
Einzelne Datumsbestandteile ausgeben
<?php
$info = getdate();
echo 'Tag: ' . $info['mday'] . PHP_EOL;
echo 'Monat: ' . $info['mon'] . PHP_EOL;
echo 'Jahr: ' . $info['year'] . PHP_EOL;
echo 'Stunde: ' . $info['hours'] . PHP_EOL;
echo 'Wochentag: ' . $info['weekday'] . PHP_EOL;
Timestamp auswerten und formatiert ausgeben
<?php
$timestamp = mktime(9, 30, 0, 12, 24, 2024);
$info = getdate($timestamp);
printf(
"Datum: %02d.%02d.%04d um %02d:%02d Uhr\n",
$info['mday'],
$info['mon'],
$info['year'],
$info['hours'],
$info['minutes']
);
echo 'Es ist ein: ' . $info['weekday'] . PHP_EOL;
echo 'Tag des Jahres: ' . $info['yday'] . PHP_EOL;
// Wichtig · Fallstricke
Die Felder weekday und month sind immer englischsprachig ("Monday", "January" usw.) und werden nicht durch setlocale() beeinflusst. Für lokalisierte Wochentag- und Monatsnamen sollte strftime() (veraltet ab PHP 8.1) oder die IntlDateFormatter-Klasse verwendet werden.
Der gültige Bereich für Timestamps ist plattformabhängig, auf 64-Bit-Systemen jedoch sehr groß. Für Datumswerte weit in der Vergangenheit oder Zukunft ist die DateTime-Klasse robuster.