La clase DateInterval

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

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 admite el constructor de DateTime.

Sinopsis de la Clase

class DateInterval {
/* Propiedades */
public integer $y;
public integer $m;
public integer $d;
public integer $h;
public integer $i;
public integer $s;
public integer $invert;
public mixed $days;
/* Métodos */
public __construct(string $interval_spec)
public static createFromDateString(string $time): DateInterval
public format(string $format): string
}

Propiedades

y

Número de años.

m

Número de meses.

d

Número de días.

h

Número de horas.

i

Número de minutos.

s

Número de segundos.

invert

Es 1 si el intervalo representa un periodo de tiempo negativo y 0 si no. Véase DateInterval::format().

days

Si el objeto DateInterval se creó con DateTime::diff(), entonces es el número total de días entre las fechas de inicio y fin. Si no, days será false.

Antes de PHP 5.4.20/5.5.4, en lugar de false se recibía -99999 al acceder a la propiedad.

Tabla de contenidos

add a note

User Contributed Notes 1 note

up
3
nateb at gurutechnologies dot net
2 years ago
Many people have commented on doing a reverse interval on a date time.  I personally find a backwards year to be a little strange to think about and instead opt to work with just intervals.  This is the easiest I have found.

<?php
$one_year
= new DateInterval('P1Y');
$one_year_ago = new DateTime();
$one_year_ago->sub($one_year);
?>

Instead of:

<?php
$one_year_ago
= new DateInterval( "P1Y" );
$one_year_ago->invert = 1;
$one_year_ago = new DateTime();
$one_year_ago->add($one_year);
?>
To Top