# La clase DateTime

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

## Introducción

Representación de la fecha y la hora.

## Sinopsis de la Clase

class DateTime 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`): DateTime
public static createFromFormat(string `$format`, string `$time`, DateTimeZone `$timezone` = ?): DateTime
public static createFromImmutable(DateTimeImmutable `$object`): static
public static createFromInterface(DateTimeInterface `$object`): DateTime
public static getLastErrors(): array|false
public modify(string `$modify`): DateTime
public static __set_state(array `$array`): DateTime
public setDate(int `$year`, int `$month`, int `$day`): DateTime
public setISODate(int `$year`, int `$week`, int `$day` = 1): DateTime
public setTime(int `$hour`, int `$minute`, int `$second` = 0): DateTime
public setTimestamp(int `$unixtimestamp`): DateTime
public setTimezone(DateTimeZone `$timezone`): DateTime
public sub(DateInterval `$interval`): DateTime
public diff(DateTimeInterface `$datetime2`, bool `$absolute` = `false`): DateInterval
public format(string `$format`): string
public getOffset(): int
public getTimestamp(): int
public getTimezone(): DateTimeZone
public __wakeup()
}

## Historial de cambios

Versión | Descripción
--- | ---
7.2.0 | Las constantes de clase de DateTime ahora están definidas en DateTimeInterface.
7.0.0 | Constantes agregadas: DATE_RFC3339_EXTENDED y DateTime::RFC3339_EXTENDED.
5.5.0 | La clase ahora implementa DateTimeInterface.
5.4.24 | La constante COOKIE se cambió para reflejar el RFC 1036 usando un año de cuatro dígitos en lugar de un año de dos dígitos (RFC 850) como en versiones anteriores.
5.2.2 | La comparación de un objeto DateTime con los operadores de comparación se cambió para que funcionara correctamente. Anteriormente, todos los objetos DateTime eran considerados iguales (usando `==`).

## Tabla de contenidos

- DateTime::add — Añade una cantidad de días, meses, años, horas, minutos y segundos a un objeto DateTime
- DateTime::__construct — Devuelve un nuevo objeto DateTime
- DateTime::createFromFormat — Analiza una cadena con un instante según un formato especificado
- DateTime::createFromImmutable — Returns new DateTime instance encapsulating the given DateTimeImmutable object
- DateTime::createFromInterface — Returns new DateTime object encapsulating the given DateTimeInterface object
- DateTime::getLastErrors — Devuelve las advertencias y los errores
- DateTime::modify — Altera la marca temporal
- DateTime::__set_state — El gestor __set_state
- DateTime::setDate — Establece la fecha
- DateTime::setISODate — Establece la fecha ISO
- DateTime::setTime — Establece la hora
- DateTime::setTimestamp — Establece la fecha y la hora basándose en una marca temporal de Unix
- DateTime::setTimezone — Establece la zona horaria para el objeto DateTime
- DateTime::sub — Sustrae una cantidad de días, meses, años, horas, minutos y segundos de un objeto DateTime