Documentación offline PHP master

IntlCalendar::set

master Ver versión oficial en línea Licencia CC-BY-3.0Descargado el 2026-08-02

En esta página

IntlCalendar::set

Define un campo de tiempo o varios campos comunes a la vez

Descripción#

Estilo orientado a objetos

public IntlCalendar::set(int $field, int $value): true
```php

```php
public IntlCalendar::set(int $year, int $month, [int $dayOfMonth], [int $hour], [int $minute], [int $second]): true

Estilo procedimental

intlcal_set(IntlCalendar $cal, int $field, int $value): true
```php

```php
intlcal_set(IntlCalendar $cal, int $year, int $month, [int $dayOfMonth], [int $hour], [int $minute], [int $second]): bool

Define ya sea un campo específico con el valor dado, o define varios campos comunes a la vez. El rango de valores aceptables depende de si el calendario utiliza el modo tolerante.

Para los campos que entran en conflicto, los campos definidos más tarde tienen prioridad.

Este método no puede ser llamado con exactamente cuatro argumentos.

Parámetros#

cal
Una instancia de IntlCalendar.

field

value
El nuevo valor del campo dado.

year
El nuevo valor para IntlCalendar::FIELD_YEAR.

month
El nuevo valor para IntlCalendar::FIELD_MONTH. La secuencia de los meses comienza en cero, es decir que enero es representado por 0, febrero por 1, ..., diciembre por 11 y Undecember (si el calendario lo soporta) por 12.

dayOfMonth
El nuevo valor para IntlCalendar::FIELD_DAY_OF_MONTH.

hour
El nuevo valor para IntlCalendar::FIELD_HOUR_OF_DAY.

minute
El nuevo valor para IntlCalendar::FIELD_MINUTE.

second
El nuevo valor para IntlCalendar::FIELD_SECOND.

Valores devueltos#

Retorna siempre true.

Historial de cambios#

Versión Descripción
8.2.0 El tipo de retorno es ahora true, anteriormente era bool.
8.4.0 Esto ha sido deprecado en favor de los métodos IntlCalendar::setDate y IntlCalendar::setDateTime.

Ejemplos#

IntlCalendar::set

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

//Las últimas llamadas tienen prioridad
$cal = new IntlGregorianCalendar(2013, 6 /* July */, 1);
$cal->set(IntlCalendar::FIELD_YEAR, 2012);
$cal->set(IntlCalendar::FIELD_EXTENDED_YEAR, 2011);
var_dump(IntlDateFormatter::formatObject($cal));

$cal = new IntlGregorianCalendar(2013, 6 /* July */, 1);
$cal->set(IntlCalendar::FIELD_YEAR, 2012);
$cal->set(IntlCalendar::FIELD_EXTENDED_YEAR, 2011);
//el tiempo no ha sido recalculado. Si borramos el año extendido,
//el año definido antes será utilizado
$cal->clear(IntlCalendar::FIELD_EXTENDED_YEAR);
var_dump(IntlDateFormatter::formatObject($cal));

El ejemplo anterior mostrará:

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

Véase también#

IntlCalendar::get, IntlCalendar::add, IntlCalendar::roll