# La classe IntlCalendar

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

## Introducción

## Sinopsis de la Clase

class IntlCalendar {
/* Constantes */
public const int FIELD_ERA;
public const int FIELD_YEAR;
public const int FIELD_MONTH;
public const int FIELD_WEEK_OF_YEAR;
public const int FIELD_WEEK_OF_MONTH;
public const int FIELD_DATE;
public const int FIELD_DAY_OF_YEAR;
public const int FIELD_DAY_OF_WEEK;
public const int FIELD_DAY_OF_WEEK_IN_MONTH;
public const int FIELD_AM_PM;
public const int FIELD_HOUR;
public const int FIELD_HOUR_OF_DAY;
public const int FIELD_MINUTE;
public const int FIELD_SECOND;
public const int FIELD_MILLISECOND;
public const int FIELD_ZONE_OFFSET;
public const int FIELD_DST_OFFSET;
public const int FIELD_YEAR_WOY;
public const int FIELD_DOW_LOCAL;
public const int FIELD_EXTENDED_YEAR;
public const int FIELD_JULIAN_DAY;
public const int FIELD_MILLISECONDS_IN_DAY;
public const int FIELD_IS_LEAP_MONTH;
public const int FIELD_FIELD_COUNT;
public const int FIELD_DAY_OF_MONTH;
public const int DOW_SUNDAY;
public const int DOW_MONDAY;
public const int DOW_TUESDAY;
public const int DOW_WEDNESDAY;
public const int DOW_THURSDAY;
public const int DOW_FRIDAY;
public const int DOW_SATURDAY;
public const int DOW_TYPE_WEEKDAY;
public const int DOW_TYPE_WEEKEND;
public const int DOW_TYPE_WEEKEND_OFFSET;
public const int DOW_TYPE_WEEKEND_CEASE;
public const int WALLTIME_FIRST;
public const int WALLTIME_LAST;
public const int WALLTIME_NEXT_VALID;
/* Métodos */
private function __construct()
public function add(int `$field`, int `$value`): bool
public function after(IntlCalendar `$other`): bool
public function before(IntlCalendar `$other`): bool
public function clear(?int `$field` = `null`): true
public static function createInstance(IntlTimeZone|DateTimeZone|string|null `$timezone` = `null`, ?string `$locale` = `null`): ?IntlCalendar
public function equals(IntlCalendar `$other`): bool
public function fieldDifference(float `$timestamp`, int `$field`): int|false
public static function fromDateTime(DateTime|string `$datetime`, ?string `$locale` = `null`): ?IntlCalendar
public function get(int `$field`): int|false
public function getActualMaximum(int `$field`): int|false
public function getActualMinimum(int `$field`): int|false
public static function getAvailableLocales(): array
public function getDayOfWeekType(int `$dayOfWeek`): int|false
public function getErrorCode(): int|false
public function getErrorMessage(): string|false
public function getFirstDayOfWeek(): int|false
public function getGreatestMinimum(int `$field`): int|false
public static function getKeywordValuesForLocale(string `$keyword`, string `$locale`, bool `$onlyCommon`): IntlIterator|false
public function getLeastMaximum(int `$field`): int|false
public function getLocale(int `$type`): string|false
public function getMaximum(int `$field`): int|false
public function getMinimalDaysInFirstWeek(): int|false
public function getMinimum(int `$field`): int|false
public static function getNow(): float
public function getRepeatedWallTimeOption(): int
public function getSkippedWallTimeOption(): int
public function getTime(): float|false
public function getTimeZone(): IntlTimeZone|false
public function getType(): string
public function getWeekendTransition(int `$dayOfWeek`): int|false
public function inDaylightTime(): bool
public function isEquivalentTo(IntlCalendar `$other`): bool
public function isLenient(): bool
public function isSet(int `$field`): bool
public function isWeekend(?float `$timestamp` = `null`): bool
public function roll(int `$field`, int|bool `$value`): bool
public function set(int `$field`, int `$value`): true
public function set(
int `$year`,
int `$month`,
int `$dayOfMonth` = NULL,
int `$hour` = NULL,
int `$minute` = NULL,
int `$second` = NULL
): true
public function setDate(int `$year`, int `$month`, int `$dayOfMonth`): void
public function setDateTime(
int `$year`,
int `$month`,
int `$dayOfMonth`,
int `$hour`,
int `$minute`,
?int `$second` = `null`
): void
public function setFirstDayOfWeek(int `$dayOfWeek`): true
public function setLenient(bool `$lenient`): true
public function setMinimalDaysInFirstWeek(int `$days`): true
public function setRepeatedWallTimeOption(int `$option`): true
public function setSkippedWallTimeOption(int `$option`): true
public function setTime(float `$timestamp`): bool
public function setTimeZone(IntlTimeZone|DateTimeZone|string|null `$timezone`): bool
public function toDateTime(): DateTime|false
}

## Constantes predefinidas

`IntlCalendar::FIELD_ERA` int

  El campo de calendario que representa numéricamente una era, por ejemplo `1` para AD y `0` para BC en los calendarios gregoriano/juliano y `235` para la era Heisei (平成) en el calendario japonés. No todos los calendarios tienen más de una era.

`IntlCalendar::FIELD_YEAR` int

  El campo de calendario para el año. Esto no es único a través de las eras. Si el tipo de calendario tiene más de una era, generalmente el valor mínimo para este campo será `1`.

`IntlCalendar::FIELD_MONTH` int

  El campo de calendario para el mes. La secuencia de los meses comienza en cero, por lo que enero (aquí utilizado para significar el primer mes del calendario; esto puede tener otro nombre, como Muharram en el calendario islámico) está representado por `0`, febrero por `1`, …, diciembre por `11` y, para los calendarios que lo tienen, el 13º o mes bis por `12`.

`IntlCalendar::FIELD_WEEK_OF_YEAR` int

  El campo de calendario para el número de la semana del año. Esto depende del día de la semana que se considere como el inicio de la semana y del número mínimo de días en una semana.

`IntlCalendar::FIELD_WEEK_OF_MONTH` int

  El campo de calendario para el número de la semana del mes. Esto depende del día de la semana que se considere como el inicio de la semana y del número mínimo de días en una semana.

`IntlCalendar::FIELD_DATE` int

  El campo de calendario para el día del mes. Idéntico a `IntlCalendar::FIELD_DAY_OF_MONTH`, que tiene un nombre más claro.

`IntlCalendar::FIELD_DAY_OF_YEAR` int

  El campo de calendario para el día del año. Para el calendario gregoriano, comienza en `1` y termina en `365` o `366`.

`IntlCalendar::FIELD_DAY_OF_WEEK` int

  El campo de calendario para el día de la semana. Sus valores comienzan en `1` (domingo, ver `IntlCalendar::DOW_SUNDAY` y las constantes siguientes) y el último valor válido es `7` (sábado).

`IntlCalendar::FIELD_DAY_OF_WEEK_IN_MONTH` int

  Dado un día de la semana (domingo, lunes, …), este campo de calendario asigna un ordinal a tal día de la semana en un mes específico. Por lo tanto, si el valor de este campo es `1` y el valor del día de la semana es `2` (lunes), entonces el día definido del mes es el primer lunes del mes; el valor máximo es `5`.

  Además de esto, el valor `0` y los valores negativos también están permitidos. El valor `0` abarca los siete días que ocurren inmediatamente antes de los siete primeros días de un mes (que por lo tanto tienen un « día de la semana en el mes » con el valor `1`). Los valores negativos comienzan a contar desde el final del mes - `-1` apunta a la última ocurrencia de un día de la semana en un mes, `-2` a la penúltima, y así sucesivamente.

  A diferencia de `IntlCalendar::FIELD_WEEK_OF_MONTH` y `IntlCalendar::FIELD_WEEK_OF_YEAR`, este valor no depende de IntlCalendar::getFirstDayOfWeek() o de IntlCalendar::getMinimalDaysInFirstWeek(). El primer lunes es el primer lunes, incluso si se encuentra en una semana que pertenece al mes anterior.

`IntlCalendar::FIELD_AM_PM` int

  El campo de calendario que indica si una hora es antes del mediodía (valor `0`, AM) o después (`1`, PM). La medianoche es AM, el mediodía es PM.

`IntlCalendar::FIELD_HOUR` int

  El campo de calendario para la hora, sin especificar si es por la mañana o por la tarde. Los valores válidos son de `0` a `11`.

`IntlCalendar::FIELD_HOUR_OF_DAY` int

  El campo de calendario para la hora completa (24h) del día. Los valores válidos son de `0` a `23`.

`IntlCalendar::FIELD_MINUTE` int

  El campo de calendario para la componente minutos de la hora.

`IntlCalendar::FIELD_SECOND` int

  El campo de calendario para la componente segundos de la hora.

`IntlCalendar::FIELD_MILLISECOND` int

  El campo de calendario para la componente milisegundos de la hora.

`IntlCalendar::FIELD_ZONE_OFFSET` int

  El campo de calendario que indica el desplazamiento bruto del huso horario, en milisegundos. El desplazamiento bruto es el desplazamiento del huso horario, excluyendo cualquier desplazamiento debido al horario de verano.

`IntlCalendar::FIELD_DST_OFFSET` int

  El campo de calendario para el desplazamiento del horario de verano del huso horario del calendario, en milisegundos, si está activo para el huso horario

`IntlCalendar::FIELD_YEAR_WOY` int

  El campo de calendario que representa el año para los fines de la semana del año.

`IntlCalendar::FIELD_DOW_LOCAL` int

  El campo de calendario para el día localizado de la semana. Esto es un valor entre `1` y `7`, `1` siendo utilizado para el día de la semana que corresponde al valor devuelto por IntlCalendar::getFirstDayOfWeek().

`IntlCalendar::FIELD_EXTENDED_YEAR` int

  El campo de calendario para una representación numérica del año que es continua a través de las eras. Para el calendario gregoriano, el valor de este campo corresponde al de `IntlCalendar::FIELD_YEAR` para los años AD; un año BC `y` es representado por `-y + 1`.

`IntlCalendar::FIELD_JULIAN_DAY` int

  El campo de calendario para un número de días julianos modificado. Es diferente de un número convencional de días julianos en que sus transiciones ocurren a medianoche del huso horario local en lugar de a mediodía UTC. Identifica de manera única una fecha.

`IntlCalendar::FIELD_MILLISECONDS_IN_DAY` int

  El campo de calendario que engloba la información en `IntlCalendar::FIELD_HOUR_OF_DAY`, `IntlCalendar::FIELD_MINUTE`, `IntlCalendar::FIELD_SECOND` y `IntlCalendar::FIELD_MILLISECOND`. El rango es de `0` a `24 * 3600 * 1000 - 1`. Esto no es el número de milisegundos transcurridos en el día, ya que durante las transiciones DST tendrá discontinuidades análogas a las de la hora local.

`IntlCalendar::FIELD_IS_LEAP_MONTH` int

  El campo de calendario cuyo valor es `1` para indicar un mes bisiesto y `0` en caso contrario.

`IntlCalendar::FIELD_FIELD_COUNT` int

  El número total de campos.

`IntlCalendar::FIELD_DAY_OF_MONTH` int

  Un alias de `IntlCalendar::FIELD_DATE`.

`IntlCalendar::DOW_SUNDAY` int

  Domingo.

`IntlCalendar::DOW_MONDAY` int

  Lunes.

`IntlCalendar::DOW_TUESDAY` int

  Martes.

`IntlCalendar::DOW_WEDNESDAY` int

  Miércoles.

`IntlCalendar::DOW_THURSDAY` int

  Jueves.

`IntlCalendar::DOW_FRIDAY` int

  Viernes.

`IntlCalendar::DOW_SATURDAY` int

  Sábado.

`IntlCalendar::DOW_TYPE_WEEKDAY` int

  La salida de IntlCalendar::getDayOfWeekType() indicando que un día de la semana pertenece a la semana.

`IntlCalendar::DOW_TYPE_WEEKEND` int

  La salida de IntlCalendar::getDayOfWeekType() indicando que un día de la semana pertenece al fin de semana.

`IntlCalendar::DOW_TYPE_WEEKEND_OFFSET` int

  La salida de IntlCalendar::getDayOfWeekType() indicando que el fin de semana comienza durante el día de la semana dado.

`IntlCalendar::DOW_TYPE_WEEKEND_CEASE` int

  La salida de IntlCalendar::getDayOfWeekType() indicando que el fin de semana termina durante el día de la semana dado.

`IntlCalendar::WALLTIME_FIRST` int

  La salida de IntlCalendar::getSkippedWallTimeOption() indicando que las horas murales en el rango saltado deberían referirse al mismo instante que las horas murales con una hora menos y de IntlCalendar::getRepeatedWallTimeOption() indicando que las horas murales en el rango repetido deberían referirse al instante de la primera ocurrencia de esta hora murale.

`IntlCalendar::WALLTIME_LAST` int

  La salida de IntlCalendar::getSkippedWallTimeOption() indicando que las horas murales en el rango saltado deberían referirse al mismo instante que las horas murales con una hora más y de IntlCalendar::getRepeatedWallTimeOption() indicando que las horas murales en el rango repetido deberían referirse al instante de la segunda ocurrencia de esta hora murale.

`IntlCalendar::WALLTIME_NEXT_VALID` int

  La salida de IntlCalendar::getRepeatedWallTimeOption() indicando que las horas murales en el rango repetido deberían referirse al instante cuando la transición del horario de verano llega (comienza).

## Historial de cambios

Versión | Descripción
--- | ---
8.4.0 | Las constantes de clase ahora están tipadas.

## Tabla de contenidos

- IntlCalendar::add — Añade una duración (con signo) a un campo
- IntlCalendar::after — Verifica si el objeto tiempo actual está en el futuro respecto al objeto tiempo pasado
- IntlCalendar::before — Verifica si el objeto tiempo está en el pasado en relación con el objeto proporcionado
- IntlCalendar::clear — Vacía un campo o todos los campos
- IntlCalendar::__construct — Constructor privado para la desactivación de la instanciación
- IntlCalendar::createInstance — Crea un nuevo objeto IntlCalendar
- IntlCalendar::equals — Verifica si dos objetos IntlCalendar son iguales
- IntlCalendar::fieldDifference — Calcula la diferencia entre el tiempo dado y el tiempo del objeto
- IntlCalendar::fromDateTime — Crea un IntlCalendar a partir de un objeto DateTime o string
- IntlCalendar::get — Recupera el valor de una propiedad
- IntlCalendar::getActualMaximum — El valor máximo para un campo, considerando el tiempo actual del objeto
- IntlCalendar::getActualMinimum — El valor mínimo para un campo, considerando el tiempo actual del objeto
- IntlCalendar::getAvailableLocales — Devuelve un array de locales para los cuales hay datos disponibles
- IntlCalendar::getDayOfWeekType — Indica si un día es un día de la semana, un fin de semana o un día de transición entre ambos
- IntlCalendar::getErrorCode — Devuelve el último código de error en el objeto
- IntlCalendar::getErrorMessage — Devuelve el último mensaje de error en el objeto
- IntlCalendar::getFirstDayOfWeek — Devuelve el primer día de la semana para la configuración local del calendario
- IntlCalendar::getGreatestMinimum — Devuelve el valor mínimo local más grande para un campo
- IntlCalendar::getKeywordValuesForLocale — Devuelve el conjunto de valores de palabras clave de configuración regional
- IntlCalendar::getLeastMaximum — Obtiene el mínimo máximo local para un campo
- IntlCalendar::getLocale — Devuelve la configuración local asociada al objeto
- IntlCalendar::getMaximum — Obtiene el valor máximo global para un campo
- IntlCalendar::getMinimalDaysInFirstWeek — Obtiene el número mínimo de días que la primera semana de un año o mes puede tener
- IntlCalendar::getMinimum — Obtiene el valor mínimo global para un campo
- IntlCalendar::getNow — Obtiene el número que representa la fecha actual
- IntlCalendar::getRepeatedWallTimeOption — Obtiene el comportamiento para la gestión de las horas murales repetidas
- IntlCalendar::getSkippedWallTimeOption — Obtiene el comportamiento para la gestión de las horas murales omitidas
- IntlCalendar::getTime — Obtiene el tiempo actualmente representado por el objeto
- IntlCalendar::getTimeZone — Recupera la zona horaria del objeto
- IntlCalendar::getType — Obtiene el tipo de calendario
- IntlCalendar::getWeekendTransition — Obtiene la hora del día en la que comienza o termina el fin de semana
- IntlCalendar::inDaylightTime — Indica si el objeto está en horario de verano
- IntlCalendar::isEquivalentTo — Indica si otro calendario es equivalente, pero para otro momento
- IntlCalendar::isLenient — Indica si la interpretación de la fecha/hora está en modo tolerante
- IntlCalendar::isSet — Indica si un campo está definido
- IntlCalendar::isWeekend — Indica si una fecha/hora es un fin de semana
- IntlCalendar::roll — Añade un valor a un campo sin reportarlo a los campos más significativos
- IntlCalendar::set — Define un campo de tiempo o varios campos comunes a la vez
- IntlCalendar::setDate — Establece un campo de fecha
- IntlCalendar::setDateTime — Establece un campo de fecha y hora
- IntlCalendar::setFirstDayOfWeek — Define el día de inicio de la semana
- IntlCalendar::setLenient — Define si la interpretación de la fecha/hora es tolerante
- IntlCalendar::setMinimalDaysInFirstWeek — Define el número mínimo de días que la primera semana de un año o mes puede tener
- IntlCalendar::setRepeatedWallTimeOption — Define el comportamiento para la gestión de las horas murales repetidas durante las transiciones de cambio de huso horario negativo
- IntlCalendar::setSkippedWallTimeOption — Define el comportamiento para la gestión de las horas murales saltadas durante las transiciones de desplazamiento horario positivo
- IntlCalendar::setTime — Define el tiempo del calendario en milisegundos desde la época
- IntlCalendar::setTimeZone — Define el huso horario utilizado por este calendario
- IntlCalendar::toDateTime — Convierte un objeto IntlCalendar en un objeto DateTime

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open