Introducción
Representa un intervalo de fechas.
Un intervalo de fechas almacena o bien una cantidad fija de instantes (en años, meses,
días, horas, etc.) o bien una cadena con un instante relativo en el formato que
admiten los constructores de DateTimeImmutable y
DateTime.
Más especificamente, la información en un objeto de la clase
DateInterval es una instrucción para llegar de
un instante de fecha/hora a otro instante de fecha/hora. Este proceso no es siempre reversible.
Un modo común de crear un objeto DateInterval
es calculando la diferencia entre dos objetos de fecha/hora a través de
DateTimeInterface::diff().
La forma en que se aplica la parte horaria de un intervalo, es decir horas,
minutos, segundos y microsegundos, cuando el intervalo se suma a, o se
resta de, un objeto de fecha/hora depende de cómo se creó el intervalo.
Para un intervalo creado con
DateInterval::__construct() la parte horaria
representa tiempo transcurrido, mientras que para un intervalo creado con
DateInterval::createFromDateString(), o devuelto por
DateTimeInterface::diff(), incrementa o decrementa
los valores de cada componente. La parte de fecha, es decir años, meses y
días, siempre incrementa o decrementa los valores de cada componente. Por
lo tanto, ambos solo dan un resultado distinto cuando una transición de
zona horaria cae dentro de la parte horaria del intervalo; véase
Aritmética con DateTime.
Dado que no hay una forma bien definida de comparar intervalos de fechas,
las instancias de DateInterval son
incomparables.