Start · Sprachen · PHP · Referenz · datefmt_get_error_message

datefmt_get_error_message

Funktion

Gibt den Fehlertext der letzten Operation eines <code>IntlDateFormatter</code>-Objekts zurück.

seit PHP 5.3.0 Kategorie: string

Signatur

datefmt_get_error_message(IntlDateFormatter $formatter): string

Beschreibung

datefmt_get_error_message() ist die prozedurale Variante der Methode IntlDateFormatter::getErrorMessage() und liefert eine menschenlesbare Fehlermeldung, die bei der zuletzt ausgeführten Formatter-Operation (z. B. format() oder parse()) erzeugt wurde.

Die Funktion arbeitet eng mit datefmt_get_error_code() zusammen: Während die eine Funktion den numerischen ICU-Fehlercode zurückgibt, liefert diese Funktion den zugehörigen beschreibenden Text, was das Debugging erheblich erleichtert.

Im Erfolgsfall gibt die Funktion den String U_ZERO_ERROR zurück, was bedeutet, dass kein Fehler aufgetreten ist. Nur wenn eine vorangegangene Operation fehlgeschlagen ist, enthält der Rückgabewert eine aussagekräftige Fehlerbeschreibung aus der ICU-Bibliothek.

Diese Funktion ist besonders nützlich, wenn Datums- und Zeitwerte aus Benutzereingaben geparst werden und eine zuverlässige Fehlerdiagnose gefordert ist, ohne Exceptions zu verwenden.

Parameter

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

Rückgabewert

Typ
string
Beschreibung
Gibt einen String mit der Fehlermeldung der letzten Operation zurück. Im Erfolgsfall wird 'U_ZERO_ERROR' zurückgegeben. Bei einem Fehler enthält der String eine beschreibende Meldung aus der ICU-Bibliothek.

Beispiele

Fehlertext nach einem fehlgeschlagenen Parsen ausgeben

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

// Ungültiger Datumswert wird geparst
$result = datefmt_parse($formatter, 'Dies ist kein Datum');

if ($result === false) {
    $errorCode    = datefmt_get_error_code($formatter);
    $errorMessage = datefmt_get_error_message($formatter);
    echo "Fehlercode: $errorCode\n";
    echo "Fehlermeldung: $errorMessage\n";
} else {
    echo "Geparster Timestamp: $result\n";
}
Fehlercode: 9 Fehlermeldung: U_PARSE_ERROR

Fehlertext nach erfolgreicher Operation prüfen

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

// Gültiges Datum formatieren
$output = datefmt_format($formatter, mktime(0, 0, 0, 6, 15, 2024));

echo "Formatiertes Datum: $output\n";
echo "Fehlerstatus: " . datefmt_get_error_message($formatter) . "\n";
Formatiertes Datum: 15. Juni 2024 Fehlerstatus: U_ZERO_ERROR

// Wichtig · Fallstricke

Der Rückgabewert 'U_ZERO_ERROR' bedeutet, dass kein Fehler vorliegt — er ist also kein Fehlertext, sondern der Normalzustand. Verwechslungen damit können zu falschen Fehlerauswertungen führen.

Diese Funktion liefert stets einen String und gibt niemals false oder null zurück, selbst wenn noch keine Operation ausgeführt wurde. In modernem objektorientiertem Code empfiehlt sich die gleichwertige Methode IntlDateFormatter::getErrorMessage().