Start · Sprachen · PHP · Referenz · getdate

getdate

Funktion

Gibt ein assoziatives Array mit Datums- und Zeitinformationen für einen Unix-Timestamp zurück.

seit PHP 4.0.0 Kategorie: date

Signatur

getdate(int $timestamp = time()): array

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

Typ
array
Beschreibung
Gibt ein assoziatives Array mit den Schlüsseln 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;
Tag: 15 Monat: 6 Jahr: 2025 Stunde: 14 Wochentag: Sunday

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;
Datum: 24.12.2024 um 09:30 Uhr Es ist ein: Tuesday Tag des Jahres: 358

// 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.