IntlDateFormatter::format

datefmt_format

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

IntlDateFormatter::format -- datefmt_formatФорматирует значение даты/времени в виде строки

Описание

Объектно-ориентированный стиль

public IntlDateFormatter::format(IntlCalendar|DateTimeInterface|array|string|int|float $datetime): string|false

Процедурный стиль

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

Форматирует значение даты/времени в виде строки.

Список параметров

formatter

Ресурс средства форматирования даты.

datetime

Значение для форматирования. Это может быть объект DateTimeInterface, объект IntlCalendar, тип numeric, представляющий (возможно, дробное) количество секунд с начала эпохи Unix или массив (array) в формате, выводимом функцией localtime().

Если передаётся объект DateTime или IntlCalendar, его часовой пояс не учитывается. Объект будет отформатирован с использованием часового пояса средства форматирования. Если кто-то хочет использовать часовой пояс объекта, который нужно отформатировать, необходимо вызвать функцию IntlDateFormatter::setTimeZone() с часовым поясом объекта. В качестве альтернативы вместо неё может использоваться статическая функция IntlDateFormatter::formatObject().

Возвращаемые значения

Отформатированная строка или false в случае возникновения ошибки.

Список изменений

Версия Описание
7.1.5 Добавлена поддержка предоставления общих объектов DateTimeInterface для параметра datetime. Раньше поддерживались только объекты DateTime.
PECL 3.0.0 Добавлена поддержка предоставления объектов IntlCalendar для параметра datetime.

Примеры

Пример #1 Пример использования datefmt_format()

<?php
$fmt
= datefmt_create(
'en_US',
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
'America/Los_Angeles',
IntlDateFormatter::GREGORIAN
);
echo
'Первый форматированный вывод: ' . datefmt_format($fmt, 0);

$fmt = datefmt_create(
'de-DE',
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
'America/Los_Angeles',
IntlDateFormatter::GREGORIAN
);
echo
'Второй форматированный вывод: ' . datefmt_format($fmt, 0);

$fmt = datefmt_create(
'en_US',
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
'America/Los_Angeles',
IntlDateFormatter::GREGORIAN,
'MM/dd/yyyy'
);
echo
'Первый форматированный вывод с шаблоном: ' . datefmt_format($fmt, 0);

$fmt = datefmt_create(
'de-DE',
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
'America/Los_Angeles',
IntlDateFormatter::GREGORIAN,
'MM/dd/yyyy'
);
echo
"Второй форматированный вывод с шаблоном: " . datefmt_format($fmt, 0);
?>

Пример #2 Пример использования в объектно-ориентированном стиле

<?php
$fmt
= new IntlDateFormatter(
'en_US',
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
'America/Los_Angeles',
IntlDateFormatter::GREGORIAN
);
echo
'Первый форматированный вывод: ' . $fmt->format(0);

$fmt = new IntlDateFormatter(
'de-DE',
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
'America/Los_Angeles',
IntlDateFormatter::GREGORIAN
);
echo
'Второй форматированный вывод: ' . $fmt->format(0);

$fmt = new IntlDateFormatter(
'en_US',
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
'America/Los_Angeles',
IntlDateFormatter::GREGORIAN,
'MM/dd/yyyy'
);
echo
'Первый форматированный вывод с шаблоном: ' . $fmt->format(0);

$fmt = new IntlDateFormatter(
'de-DE',
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
'America/Los_Angeles',
IntlDateFormatter::GREGORIAN,
'MM/dd/yyyy'
);
echo
'Второй форматированный вывод с шаблоном: ' . $fmt->format(0);
?>

Результат выполнения данного примера:

Первый форматированный вывод: Wednesday, December 31, 1969 4:00:00 PM PT
Второй форматированный вывод: Mittwoch, 31. Dezember 1969 16:00 Uhr GMT-08:00
Первый форматированный вывод с шаблоном: 12/31/1969
Второй форматированный вывод с шаблоном: 12/31/1969

Пример #3 Пример использования с объектом IntlCalendar

<?php
$tz
= reset(iterator_to_array(IntlTimeZone::createEnumeration('FR')));
$formatter = IntlDateFormatter::create(
'fr_FR',
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
$tz,
IntlDateFormatter::GREGORIAN
);

$cal = IntlCalendar::createInstance($tz, '@calendar=islamic-civil');
$cal->set(IntlCalendar::FIELD_MONTH, 8); //9-й месяц, Рамадан
$cal->set(IntlCalendar::FIELD_DAY_OF_MONTH, 1); //Первый день
$cal->clear(IntlCalendar::FIELD_HOUR_OF_DAY);
$cal->clear(IntlCalendar::FIELD_MINUTE);
$cal->clear(IntlCalendar::FIELD_SECOND);
$cal->clear(IntlCalendar::FIELD_MILLISECOND);

echo
"В этом исламском году Рамадан начался/начнётся:\n\t",
$formatter->format($cal), "\n";

//Это часовой пояс используемого средства форматирования:
$formatter->setTimeZone('Asia/Tokyo');
echo
"После изменения часового пояса:\n\t",
$formatter->format($cal), "\n";

Результат выполнения данного примера:

В этом исламском году Рамадан начался/начнётся:
    mardi 9 juillet 2013 19:00:00 heure avancée d’Europe centrale
После изменения часового пояса:
    mercredi 10 juillet 2013 02:00:00 heure normale du Japon

Смотрите также