Signatur
Beschreibung
datefmt_get_pattern() ist die prozedurale Variante der Methode IntlDateFormatter::getPattern() und liefert das ICU-Muster (Pattern), das der angegebene Datumsformatierer zur Formatierung bzw. Analyse von Datums- und Zeitwerten verwendet.
Das zurückgegebene Muster entspricht der ICU-Syntax für Datums- und Zeitformate, z. B. 'dd.MM.yyyy HH:mm:ss'. Dieses Muster kann entweder automatisch anhand der Locale und des Formatierungsstils gesetzt worden sein oder durch einen vorherigen Aufruf von datefmt_set_pattern() manuell definiert worden sein.
Die Funktion ist besonders nützlich, wenn man das aktuelle Muster eines Formatters auslesen möchte, um es zu prüfen, anzupassen oder in eine andere Komponente weiterzugeben. Sie arbeitet eng mit datefmt_set_pattern() zusammen, mit dem sich das Muster nachträglich ändern lässt.
Bei ungültigem $formatter-Objekt oder internem Fehler gibt die Funktion false zurück.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $formatter Pflicht | IntlDateFormatter | Das IntlDateFormatter-Objekt, dessen Muster abgerufen werden soll. |
Rückgabewert
string zurück, oder false bei einem Fehler.Beispiele
Muster eines Formatters mit vordefiniertem Stil auslesen
<?php
$formatter = datefmt_create(
'de_DE',
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
'Europe/Berlin',
IntlDateFormatter::GREGORIAN
);
$pattern = datefmt_get_pattern($formatter);
echo 'Aktuelles Muster: ' . $pattern;
Muster auslesen nach manuellem Setzen mit datefmt_set_pattern
<?php
$formatter = datefmt_create(
'de_DE',
IntlDateFormatter::SHORT,
IntlDateFormatter::SHORT,
'Europe/Berlin',
IntlDateFormatter::GREGORIAN
);
// Muster vor Änderung
echo 'Vorher: ' . datefmt_get_pattern($formatter) . PHP_EOL;
// Muster anpassen
datefmt_set_pattern($formatter, 'dd.MM.yyyy HH:mm');
// Muster nach Änderung
echo 'Nachher: ' . datefmt_get_pattern($formatter) . PHP_EOL;
// Datum mit dem neuen Muster formatieren
echo datefmt_format($formatter, mktime(14, 30, 0, 6, 15, 2024)) . PHP_EOL;
// Wichtig · Fallstricke
ICU-Muster: Das zurückgegebene Muster folgt der ICU-Datums-/Zeitformat-Syntax. Buchstaben wie y (Jahr), M (Monat), d (Tag), H (Stunde, 0–23) haben dort eine festgelegte Bedeutung und unterscheiden sich teils erheblich von der PHP-eigenen date()-Syntax.
Die Funktion setzt voraus, dass die PHP-Extension intl installiert und aktiviert ist. Fehlt diese, steht weder datefmt_get_pattern() noch IntlDateFormatter zur Verfügung.
Das Muster kann je nach Locale und ICU-Version variieren. Wer portablen Code schreiben will, sollte das Muster explizit über datefmt_set_pattern() setzen, anstatt sich auf locale-abhängige Standardmuster zu verlassen.