IntlDateFormatter::format

datefmt_format

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

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

Описание

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

publicIntlDateFormatter::format(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

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

To Top