IntlDateFormatter::formatObject

datefmt_format_object

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL intl >= 3.0.0)

IntlDateFormatter::formatObject -- datefmt_format_objectFormata um objeto

Descrição

Estilo orientado a objetos

public static IntlDateFormatter::formatObject(IntlCalendar|DateTimeInterface $datetime, array|int|string|null $format = null, ?string $locale = null): string|false

Estilo procedural

datefmt_format_object(IntlCalendar|DateTimeInterface $datetime, array|int|string|null $format = null, ?string $locale = null): string|false

Esta função permite formatar um objeto IntlCalendar ou DateTime sem que antes seja criado um objeto IntlDateFormatter explicitamente.

O objeto IntlDateFormatter temporário que será criado irá receber o fuso horário do objeto passado. O banco de dados de fuso horário incluído com o PHP não será utilizado - o banco da ICU será usado no lugar. O identificador de fuso horário usado em objetos DateTime precisa, portanto, existir também no banco de dados da ICU.

Parâmetros

datetime

Um objeto da classe IntlCalendar ou DateTime. A informação de fuso horário no objeto será utilizada.

format

Este parâmetro indica como formatar a data/horário. Pode ser um array com dois elementos (primeiro o estilo de data, depois o de horário, com uma das constantes IntlDateFormatter::NONE, IntlDateFormatter::SHORT, IntlDateFormatter::MEDIUM, IntlDateFormatter::LONG, IntlDateFormatter::FULL), um int com o valor de uma dessas constantes (que no caso será usado tanto para o horário como para a data) ou uma string com o formato descrito na » documentação ICU. Caso seja null, o estilo padrão será usado.

locale

A localidade a ser utilizada, ou null para usar a localidade padrão.

Valor Retornado

Uma string com o resultado ou false em caso de falha.

Exemplos

Example #1 Exemplos de IntlDateFormatter::formatObject()

<?php
/* fuso horário padrão é irrelevante; o fuso horário vem do objeto */
ini_set('date.timezone', 'UTC');
/* localidade padrão é lida desta configuração ini */
ini_set('intl.default_locale', 'fr_FR');

$cal = IntlCalendar::fromDateTime("2013-06-06 17:05:06 Europe/Dublin");
echo "padrão:\n\t",
        IntlDateFormatter::formatObject($cal),
        "\n";

echo "\$format longo (FULL):\n\t",
        IntlDateFormatter::formatObject($cal, IntlDateFormatter::FULL),
        "\n";

echo "\$format array (NONE, FULL):\n\t",
        IntlDateFormatter::formatObject($cal, array(
                IntlDateFormatter::NONE,
                IntlDateFormatter::FULL)),
        "\n";

echo "\$format string (d 'of' MMMM y):\n\t",
        IntlDateFormatter::formatObject($cal, "d 'of' MMMM y", 'en_US'),
        "\n";

echo "com DateTime:\n\t",
        IntlDateFormatter::formatObject(
                new DateTime("2013-09-09 09:09:09 Europe/Madrid"),
                IntlDateFormatter::FULL,
                'es_ES'),
        "\n";

O exemplo acima produzirá:

default:
    6 juin 2013 17:05:06
$format longo (FULL):
    jeudi 6 juin 2013 17:05:06 heure d’été irlandaise
$format array (NONE, FULL):
    17:05:06 heure d’été irlandaise
$format string (d 'of' MMMM y):
    6 of June 2013
com DateTime:
    lunes, 9 de septiembre de 2013 09:09:09 Hora de verano de Europa central