PHP Conference Nagoya 2025

IntlCalendar::set

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

IntlCalendar::setDefine um campo de horário ou vários campos comuns de uma vez

Descrição

Estilo orientado a objetos

public IntlCalendar::set(int $field, int $value): true
public IntlCalendar::set(
    int $year,
    int $month,
    int $dayOfMonth = NULL,
    int $hour = NULL,
    int $minute = NULL,
    int $second = NULL
): true

Estilo procedural

intlcal_set(IntlCalendar $cal, int $field, int $value): true
intlcal_set(
    IntlCalendar $cal,
    int $year,
    int $month,
    int $dayOfMonth = NULL,
    int $hour = NULL,
    int $minute = NULL,
    int $second = NULL
): bool

Define um campo específico para o valor fornecido, ou define de uma só vez vários campos comuns. O intervalo de valores aceitos depende se o calendário está usado o modo leniente.

Para campos que conflitarem entre si, os campos que forem definidos mais tarde têm prioridade.

Este método não pode ser chamado com exatamente quatro argumentos.

Parâmetros

cal

Uma instância de IntlCalendar.

field

Uma das constantes de campo de data/horário da classe IntlCalendar. São valores inteiros entre 0 e IntlCalendar::FIELD_COUNT.

value

O novo valor para o campo informado.

year

O novo valor para IntlCalendar::FIELD_YEAR.

month

O novo valor para IntlCalendar::FIELD_MONTH. A sequência de meses é baseada em zero, isto é, janeiro é representado por 0, fevereiro por 1, …, dezembro é 11 e undecember (se o calendário tiver) é 12.

dayOfMonth

O novo valor para IntlCalendar::FIELD_DAY_OF_MONTH.

hour

O novo valor para IntlCalendar::FIELD_HOUR_OF_DAY.

minute

O novo valor para IntlCalendar::FIELD_MINUTE.

second

O novo valor para IntlCalendar::FIELD_SECOND.

Valor Retornado

Sempre retorna true.

Registro de Alterações

Versão Descrição
8.2.0 O tipo do retorno agora é true; anteriormente, era bool.
8.4.0 Este método foi descontinuado em favor dos métodos IntlCalendar::setDate() e IntlCalendar::setDateTime().

Exemplos

Exemplo #1 IntlCalendar::set()

<?php
ini_set
('date.timezone', 'Europe/Lisbon');
ini_set('intl.default_locale', 'pt_PT');

// Chamadas feitas mais tarde têm prioridade
$cal = new IntlGregorianCalendar(2013, 6 /* julho */, 1);
$cal->set(IntlCalendar::FIELD_YEAR, 2012);
$cal->set(IntlCalendar::FIELD_EXTENDED_YEAR, 2011);
var_dump(IntlDateFormatter::formatObject($cal));


$cal = new IntlGregorianCalendar(2013, 6 /* julho */, 1);
$cal->set(IntlCalendar::FIELD_YEAR, 2012);
$cal->set(IntlCalendar::FIELD_EXTENDED_YEAR, 2011);
// O horário não foi recalculado ainda. Se o ano estendido for limpo,
// o ano definido anteriormente será usado
$cal->clear(IntlCalendar::FIELD_EXTENDED_YEAR);
var_dump(IntlDateFormatter::formatObject($cal));

O exemplo acima produzirá:

string(20) "01/07/2011, 00:00:00"
string(20) "01/07/2012, 00:00:00"

Veja Também

adicione uma nota

Notas Enviadas por Usuários (em inglês)

Não há notas de usuários para esta página.
To Top