Start · Sprachen · PHP · Referenz · datefmt_get_timetype

datefmt_get_timetype

Funktion

Gibt den Zeittyp zurück, der beim Erstellen eines <code>IntlDateFormatter</code>-Objekts festgelegt wurde.

seit PHP 5.3.0 Kategorie: string

Signatur

datefmt_get_timetype(IntlDateFormatter $formatter): int|false

Beschreibung

datefmt_get_timetype() ist die prozedurale Variante der Methode IntlDateFormatter::getTimeType() und liefert den Zeittyp (Time-Type), der beim Instanziieren des Formatters definiert wurde. Der Zeittyp steuert, wie die Uhrzeit in der Ausgabe dargestellt wird – z. B. kurz, mittel, lang oder vollständig.

Die möglichen Rückgabewerte entsprechen den IntlDateFormatter-Konstanten: IntlDateFormatter::FULL, IntlDateFormatter::LONG, IntlDateFormatter::MEDIUM, IntlDateFormatter::SHORT oder IntlDateFormatter::NONE. Letzteres bedeutet, dass keine Uhrzeit ausgegeben wird.

Diese Funktion ist besonders nützlich, wenn man einen bestehenden Formatter inspizieren möchte, etwa um seine Konfiguration zu protokollieren, zu vergleichen oder dynamisch anzupassen, bevor Datumswerte damit formatiert werden.

Parameter

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

Rückgabewert

Typ
int|false
Beschreibung
Gibt eine Ganzzahl zurück, die dem beim Erstellen des Formatters gewählten Zeittyp entspricht (z. B. IntlDateFormatter::SHORT). Im Fehlerfall wird false zurückgegeben.

Beispiele

Zeittyp eines Formatters abfragen

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

$timeType = datefmt_get_timetype($formatter);

echo $timeType; // Gibt die Konstante für SHORT aus
echo PHP_EOL;

// Vergleich mit der Konstante
if ($timeType === IntlDateFormatter::SHORT) {
    echo 'Zeittyp ist SHORT.';
}
3 Zeittyp ist SHORT.

Zeittyp OOP vs. prozedural vergleichen

<?php
$formatter = new IntlDateFormatter(
    'en_US',
    IntlDateFormatter::FULL,
    IntlDateFormatter::MEDIUM,
    'America/New_York',
    IntlDateFormatter::GREGORIAN
);

// OOP-Variante
$timeTypeOop = $formatter->getTimeType();

// Prozedurale Variante
$timeTypeProc = datefmt_get_timetype($formatter);

echo 'OOP: '      . $timeTypeOop  . PHP_EOL;
echo 'Prozedural: ' . $timeTypeProc . PHP_EOL;
echo 'Identisch: '  . ($timeTypeOop === $timeTypeProc ? 'ja' : 'nein') . PHP_EOL;

// Menschenlesbare Darstellung
$labels = [
    IntlDateFormatter::FULL   => 'FULL',
    IntlDateFormatter::LONG   => 'LONG',
    IntlDateFormatter::MEDIUM => 'MEDIUM',
    IntlDateFormatter::SHORT  => 'SHORT',
    IntlDateFormatter::NONE   => 'NONE',
];
echo 'Zeittyp: ' . ($labels[$timeTypeOop] ?? 'Unbekannt');
OOP: 2 Prozedural: 2 Identisch: ja Zeittyp: MEDIUM

// Wichtig · Fallstricke

Die Konstanten-Werte der Zeittypen sind: IntlDateFormatter::FULL = 0, IntlDateFormatter::LONG = 1, IntlDateFormatter::MEDIUM = 2, IntlDateFormatter::SHORT = 3, IntlDateFormatter::NONE = -1. Achte darauf, beim Vergleich den strikten Operator (===) zu verwenden, da NONE den Wert -1 hat und bei einem losen Vergleich (==) mit false in Konflikt geraten kann.

Diese Funktion ist die prozedurale Entsprechung zu IntlDateFormatter::getTimeType(). Beide Varianten liefern identische Ergebnisse.