datefmt_format

funkcja

Formatuje datę lub znacznik czasu do ciągu tekstowego według ustawień obiektu IntlDateFormatter. Zwraca false przy błędzie. Wymaga intl.

datefmt_format(IntlDateFormatter $formatter, IntlCalendar|DateTimeInterface|array|string|int|float $datetime): string|false

datefmt_format przyjmuje datę w wielu postaciach — znacznik czasu Unix (int), obiekt DateTimeInterface, obiekt IntlCalendar albo tablicę w formacie localtime() — i zwraca sformatowany ciąg zgodnie z ustawieniami lokalnymi formatera. Przy błędzie zwraca false.

Funkcja wymaga rozszerzenia intl. Formatter tworzy się za pomocą datefmt_create.

<?php
declare(strict_types=1);

$fmt = datefmt_create(
    'pl_PL',
    IntlDateFormatter::LONG,
    IntlDateFormatter::NONE,
    'Europe/Warsaw'
);

// Przekazanie znacznika czasu Unix
echo datefmt_format($fmt, mktime(0, 0, 0, 6, 15, 2024));  // 15 czerwca 2024
echo datefmt_format($fmt, mktime(0, 0, 0, 12, 1, 2024));  // 1 grudnia 2024

// Przekazanie obiektu DateTimeImmutable
$dt = new DateTimeImmutable('2025-01-15', new DateTimeZone('Europe/Warsaw'));
echo datefmt_format($fmt, $dt); // 15 stycznia 2025

// Sprawdzenie błędu
$wynik = datefmt_format($fmt, 'nieprawidlowa-data');
if ($wynik === false) {
    echo datefmt_get_error_message($fmt); // komunikat błędu ICU
}