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