(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)
IntlDateFormatter::format -- datefmt_format — Форматирует значение даты/времени в виде строки
Объектно-ориентированный стиль
$datetime
): string|falseПроцедурный стиль
$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