Start · Sprachen · PHP · Referenz · cal_info

cal_info

Funktion

Gibt Informationen zu einem bestimmten Kalender zurück, wie z. B. Monatsnamen, Wochentagnamen und Anzahl der Monate.

seit PHP 4.1.0 Kategorie: date

Signatur

cal_info(int $calendar = -1): array

Beschreibung

cal_info() liefert ein assoziatives Array mit Metadaten zu einem bestimmten Kalendersystem. Dies umfasst die Namen der Monate (lang und kurz), die Anzahl der Monate sowie den internen und externen Namen des Kalenders.

Die Funktion ist besonders nützlich, wenn lokalisierte Anzeigen von Kalenderdaten benötigt werden oder wenn dynamisch mit verschiedenen Kalendersystemen (Gregorianisch, Julianisch, Jüdisch, Französisch Republikanisch) gearbeitet wird.

Wird kein Argument übergeben oder -1 angegeben, gibt die Funktion ein Array zurück, das Informationen zu allen unterstützten Kalendern enthält. Andernfalls werden nur die Daten des angegebenen Kalenders zurückgeliefert.

Die Konstanten für die Kalender sind: CAL_GREGORIAN (0), CAL_JULIAN (1), CAL_JEWISH (2) und CAL_FRENCH (3). Diese Funktion setzt die Calendar-Erweiterung voraus, die in PHP standardmäßig aktiviert ist.

Parameter

Name Typ Default Beschreibung
$calendar int -1 Die Kalender-Konstante: CAL_GREGORIAN, CAL_JULIAN, CAL_JEWISH oder CAL_FRENCH. Wird -1 übergeben oder kein Wert angegeben, werden Informationen zu allen Kalendern zurückgegeben.

Rückgabewert

Typ
array
Beschreibung
Gibt ein assoziatives Array zurück. Für einen einzelnen Kalender enthält es die Schlüssel months (Array mit langen Monatsnamen, 1-basiert), abbrevmonths (Array mit abgekürzten Monatsnamen, 1-basiert), maxdaysinmonth (maximale Tage in einem Monat), calname (langer Name des Kalenders) und calsymbol (kurzer Name/Symbol). Bei -1 wird ein numerisches Array aller Kalender-Arrays zurückgegeben.

Beispiele

Informationen zum gregorianischen Kalender ausgeben

<?php
$info = cal_info(CAL_GREGORIAN);

echo 'Kalender: ' . $info['calname'] . PHP_EOL;
echo 'Symbol: ' . $info['calsymbol'] . PHP_EOL;
echo 'Max. Tage pro Monat: ' . $info['maxdaysinmonth'] . PHP_EOL;

echo PHP_EOL . 'Monatsnamen:' . PHP_EOL;
foreach ($info['months'] as $nr => $name) {
    echo $nr . ': ' . $name . ' (' . $info['abbrevmonths'][$nr] . ')' . PHP_EOL;
}
Kalender: Gregorian Symbol: CAL_GREGORIAN Max. Tage pro Monat: 31 Monatsnamen: 1: January (Jan) 2: February (Feb) 3: March (Mar) 4: April (Apr) 5: May (May) 6: June (Jun) 7: July (Jul) 8: August (Aug) 9: September (Sep) 10: October (Oct) 11: November (Nov) 12: December (Dec)

Alle unterstützten Kalender auflisten

<?php
$allCalendars = cal_info(-1);

foreach ($allCalendars as $index => $info) {
    echo 'Index ' . $index . ': ' . $info['calname'] . ' (' . $info['calsymbol'] . ')' . PHP_EOL;
}
Index 0: Gregorian (CAL_GREGORIAN) Index 1: Julian (CAL_JULIAN) Index 2: Jewish (CAL_JEWISH) Index 3: French (CAL_FRENCH)

Jüdische Monatsnamen anzeigen

<?php
$info = cal_info(CAL_JEWISH);

echo 'Jüdischer Kalender – Monate:' . PHP_EOL;
foreach ($info['months'] as $nr => $name) {
    echo sprintf('%2d: %-20s (%s)', $nr, $name, $info['abbrevmonths'][$nr]) . PHP_EOL;
}
1: Tishri (Tishri) 2: Heshvan (Heshvan) 3: Kislev (Kislev) 4: Tevet (Tevet) 5: Shevat (Shevat) 6: Adar I (Adar I) 7: Adar II (Adar II) 8: Nisan (Nisan) 9: Iyyar (Iyyar) 10: Sivan (Sivan) 11: Tammuz (Tammuz) 12: Av (Av) 13: Elul (Elul)

// Wichtig · Fallstricke

Hinweis zur Erweiterung: cal_info() gehört zur Calendar-Erweiterung. Unter Linux/Unix-Systemen muss diese ggf. explizit mit --enable-calendar kompiliert werden, unter Windows ist sie in der Standard-PHP-Distribution enthalten.

Monatsnamen: Die zurückgegebenen Monatsnamen sind in englischer Sprache und können nicht direkt für mehrsprachige Anwendungen genutzt werden. Für lokalisierte Namen sollte IntlDateFormatter oder strftime() (veraltet ab PHP 8.1) verwendet werden.

Schaltjahr beim jüdischen Kalender: Der jüdische Kalender hat in Schaltjahren 13 Monate. cal_info(CAL_JEWISH) gibt immer alle 13 Monate zurück, auch wenn im aktuellen Jahr nur 12 existieren.