(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL intl >= 3.0.0)
IntlDateFormatter::formatObject -- datefmt_format_object — Форматирует объект
Объектно-ориентированный стиль
$datetime
, array|int|string|null $format
= null
, ?string $locale
= null
): string|falseПроцедурный стиль
$datetime
, array|int|string|null $format
= null
, ?string $locale
= null
): string|falseФункция позволяет форматировать объект IntlCalendar или DateTime без предварительного явного создания объекта IntlDateFormatter.
Временный IntlDateFormatter, который будет создан, принимает часовой пояс из переданного объекта. База данных часовых поясов, связанная с PHP, не будет использоваться - вместо неё будет использоваться ICU. Следовательно, идентификатор часового пояса, используемый в объектах DateTime, также должен существовать в базе данных ICU.
datetime
Объект типа IntlCalendar или DateTime. Будет использоваться информация о часовом поясе в объекте.
format
Как отформатировать дату/время. Может быть либо массив (array) с двумя элементами
(сначала стиль даты, затем стиль времени, может быть одна из констант: IntlDateFormatter::NONE
,
IntlDateFormatter::SHORT
,
IntlDateFormatter::MEDIUM
,
IntlDateFormatter::LONG
,
IntlDateFormatter::FULL
),
целое число (int) со значением одной из этих констант (в этом случае оно будет использоваться
как для времени, так и для даты) или строка (string) в формате,
описанном в » документации ICU.
Если указано значение null
, будет использоваться стиль по умолчанию.
locale
Используемый языковой стандарт или null
для использования
значения по умолчанию.
Строка с результатом или false
в случае возникновения ошибки.
Пример #1 Пример использования IntlDateFormatter::formatObject()
<?php
/* часовой пояс по умолчанию не имеет значения; часовой пояс взят из объекта */
ini_set('date.timezone', 'UTC');
/* языковой стандарт по умолчанию берётся из этой настройки ini */
ini_set('intl.default_locale', 'fr_FR');
$cal = IntlCalendar::fromDateTime("2013-06-06 17:05:06 Europe/Dublin");
echo "По умолчанию:\n\t",
IntlDateFormatter::formatObject($cal),
"\n";
echo "Полная запись: \$format (full):\n\t",
IntlDateFormatter::formatObject($cal, IntlDateFormatter::FULL),
"\n";
echo "Массив: \$format (none, full):\n\t",
IntlDateFormatter::formatObject($cal, array(
IntlDateFormatter::NONE,
IntlDateFormatter::FULL)),
"\n";
echo "Строка: \$format (d 'of' MMMM y):\n\t",
IntlDateFormatter::formatObject($cal, "d 'of' MMMM y", 'en_US'),
"\n";
echo "Объект DateTime:\n\t",
IntlDateFormatter::formatObject(
new DateTime("2013-09-09 09:09:09 Europe/Madrid"),
IntlDateFormatter::FULL,
'es_ES'),
"\n";
Результат выполнения данного примера:
По умолчанию: 6 juin 2013 17:05:06 Полная запись: $format (full): jeudi 6 juin 2013 17:05:06 heure d’été irlandaise Массив: $format (none, full): 17:05:06 heure d’été irlandaise Строка: $format (d 'of' MMMM y): 6 of June 2013 Объект DateTime: lunes, 9 de septiembre de 2013 09:09:09 Hora de verano de Europa central