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
}