# La clase DateTimeImmutable

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

## Introducción

Esta clase se comporta igual que DateTime con la excepción de que nunca se modifica a sí misma, sino que devuelve un nuevo objeto en su lugar.

## Sinopsis de la Clase

class DateTimeImmutable implements DateTimeInterface {
/* Constantaes heredadas constants */
const string DateTimeInterface::ATOM = "Y-m-d\TH:i:sP";
const string DateTimeInterface::COOKIE = "l, d-M-Y H:i:s T";
const string DateTimeInterface::ISO8601 = "Y-m-d\TH:i:sO";
const string DateTimeInterface::RFC822 = "D, d M y H:i:s O";
const string DateTimeInterface::RFC850 = "l, d-M-y H:i:s T";
const string DateTimeInterface::RFC1036 = "D, d M y H:i:s O";
const string DateTimeInterface::RFC1123 = "D, d M Y H:i:s O";
const string DateTimeInterface::RFC2822 = "D, d M Y H:i:s O";
const string DateTimeInterface::RFC3339 = "Y-m-d\TH:i:sP";
const string DateTimeInterface::RFC3339_EXTENDED = "Y-m-d\TH:i:s.vP";
const string DateTimeInterface::RSS = "D, d M Y H:i:s O";
const string DateTimeInterface::W3C = "Y-m-d\TH:i:sP";
/* Métodos */
public __construct(string `$time` = "now", DateTimeZone `$timezone` = `null`)
public add(DateInterval `$interval`): DateTimeImmutable
public static createFromFormat(string `$format`, string `$time`, DateTimeZone `$timezone` = ?): DateTimeImmutable
public static createFromInterface(DateTimeInterface `$object`): DateTimeImmutable
public static createFromMutable(DateTime `$datetime`): DateTimeImmutable
public static getLastErrors(): array
public modify(string `$modify`): DateTimeImmutable
public static __set_state(array `$array`): DateTimeImmutable
public setDate(int `$year`, int `$month`, int `$day`): DateTimeImmutable
public setISODate(int `$year`, int `$week`, int `$day` = 1): DateTimeImmutable
public setTime(
int `$hour`,
int `$minute`,
int `$second` = 0,
int `$microseconds` = 0
): DateTimeImmutable
public setTimestamp(int `$unixtimestamp`): DateTimeImmutable
public setTimezone(DateTimeZone `$timezone`): DateTimeImmutable
public sub(DateInterval `$interval`): DateTimeImmutable
public diff(DateTimeInterface `$datetime2`, bool `$absolute` = `false`): DateInterval
public format(string `$format`): string
public getOffset(): int
public getTimestamp(): int
public getTimezone(): DateTimeZone
public __wakeup()
}

## Tabla de contenidos

- DateTimeImmutable::add — Añade una cantidad de días, meses, años, horas, minutos y segundos
- DateTimeImmutable::__construct — Devuelve un nuevo objeto DateTimeImmutable
- DateTimeImmutable::createFromFormat — Devuelve un nuevo objeto DateTimeImmutable formateado según el formato especificado
- DateTimeImmutable::createFromInterface — Returns new DateTimeImmutable object encapsulating the given DateTimeInterface object
- DateTimeImmutable::createFromMutable — Devuelve un nuevo objeto DateTimeImmutable que encapsula el objeto DateTime dado
- DateTimeImmutable::getLastErrors — Devuelve las advertencias y errores
- DateTimeImmutable::modify — Crea un nuevo objeto con la marca de tiempo modificada
- DateTimeImmutable::__set_state — El gestor __set_state
- DateTimeImmutable::setDate — Establece la fecha
- DateTimeImmutable::setISODate — Establece la fecha ISO
- DateTimeImmutable::setTime — Establece la hora
- DateTimeImmutable::setTimestamp — Establece la fecha y hora basadas en una marca de tiempo Unix
- DateTimeImmutable::setTimezone — Establece la zona horaria
- DateTimeImmutable::sub — Sustrae una cantidad de días, meses, años, horas, minutos y segundos