Start · Sprachen · PHP · Referenz · datefmt_get_calendar

datefmt_get_calendar

Funktion

Gibt den Kalendertyp zurück, der im angegebenen <code>IntlDateFormatter</code>-Objekt verwendet wird.

seit PHP 5.3.0 Kategorie: string

Signatur

datefmt_get_calendar(IntlDateFormatter $formatter): int|false

Beschreibung

datefmt_get_calendar() ist die prozedurale Variante der Methode IntlDateFormatter::getCalendar() und liefert den aktuell eingestellten Kalendertyp des übergebenen Formatierungs-Objekts. Der Rückgabewert ist eine der IntlDateFormatter-Konstanten, z. B. IntlDateFormatter::GREGORIAN oder IntlDateFormatter::TRADITIONAL.

Die Funktion ist besonders nützlich, wenn man prüfen möchte, welcher Kalender einem Formatter zugewiesen wurde – etwa nach dem Laden aus einer Konfiguration oder um sicherzustellen, dass Berechnungen und Ausgaben konsistent auf demselben Kalendertyp basieren.

Sie gehört zur ICU-basierten Internationalisierungserweiterung (intl) von PHP und ermöglicht die kulturell korrekte Darstellung von Datumsangaben für unterschiedliche Regionen und Sprachen. Das Gegenstück zum Lesen ist datefmt_set_calendar(), mit dem der Kalendertyp nachträglich geändert werden kann.

Parameter

Name Typ Default Beschreibung
$formatter Pflicht IntlDateFormatter Das IntlDateFormatter-Objekt, dessen Kalendertyp abgefragt werden soll.

Rückgabewert

Typ
int|false
Beschreibung
Gibt eine ganzzahlige Konstante zurück, die den Kalendertyp repräsentiert (z. B. IntlDateFormatter::GREGORIAN = 1 oder IntlDateFormatter::TRADITIONAL = 0). Im Fehlerfall wird false zurückgegeben.

Beispiele

Kalendertyp eines neu erstellten Formatters auslesen

<?php
$formatter = datefmt_create(
    'de_DE',
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'Europe/Berlin',
    IntlDateFormatter::GREGORIAN
);

$kalender = datefmt_get_calendar($formatter);

if ($kalender === IntlDateFormatter::GREGORIAN) {
    echo "Kalendertyp: Gregorianisch (" . $kalender . ")";
} else {
    echo "Kalendertyp: Traditionell (" . $kalender . ")";
}
Kalendertyp: Gregorianisch (1)

Kalendertyp nach Änderung via datefmt_set_calendar prüfen

<?php
$formatter = datefmt_create(
    'fa_IR',
    IntlDateFormatter::FULL,
    IntlDateFormatter::NONE,
    'Asia/Tehran',
    IntlDateFormatter::TRADITIONAL
);

echo "Vor Änderung: " . datefmt_get_calendar($formatter) . PHP_EOL;

// Kalender auf Gregorianisch umstellen
datefmt_set_calendar($formatter, IntlDateFormatter::GREGORIAN);

echo "Nach Änderung: " . datefmt_get_calendar($formatter) . PHP_EOL;
Vor Änderung: 0 Nach Änderung: 1

// Wichtig · Fallstricke

Die Konstante IntlDateFormatter::TRADITIONAL hat den Wert 0, IntlDateFormatter::GREGORIAN den Wert 1. Verlassen Sie sich nicht auf rohe Ganzzahlwerte in Vergleichen, sondern verwenden Sie stets die benannten Konstanten für bessere Lesbarkeit und Wartbarkeit.

Die intl-Erweiterung muss in der PHP-Installation aktiviert sein (extension=intl). Fehlt sie, steht weder datefmt_get_calendar() noch IntlDateFormatter zur Verfügung.