227 of 410 menu

Clase DateInterval

La clase DateInterval permite trabajar con intervalos de tiempo en PHP. Se utiliza para almacenar la diferencia entre dos fechas o para especificar un intervalo en métodos de trabajo con fechas. El intervalo se crea en un formato especial.

Sintaxis

DateInterval::__construct(string $duration)

Formato del intervalo

El formato consiste en la letra P (period) y los elementos:

P{y}Y{m}M{d}DT{h}H{m}M{s}S{w}W

En este formato: Y - años, M - meses, D - días, T - separador de tiempo, H - horas, M - minutos, S - segundos, W - semanas.

Antes de estas letras es necesario escribir el valor correspondiente. Por ejemplo, 3Y significará tres años, y 5Y2M denotará 5 años y 2 meses.

Después de la creación, el objeto DateInterval contendrá las siguientes propiedades:

<?php $interval->y // años $interval->m // meses $interval->d // días $interval->h // horas $interval->i // minutos $interval->s // segundos $interval->f // microsegundos $interval->invert // 1 si el intervalo es negativo $interval->days // cantidad de días (si se creó mediante diff()) ?>

Veamos el funcionamiento del intervalo con ejemplos:

Ejemplo

Creemos un intervalo de 1 hora, 45 minutos y 30 segundos:

<?php $interval = new DateInterval('PT1H45M30S'); var_dump($interval); ?>

Resultado de ejecutar el código:

DateInterval Object ( 'y' => 0 'm' => 0 'd' => 0 'h' => 1 'i' => 45 's' => 30 )

Ejemplo

Creemos un intervalo de 3 semanas y 2 días:

<?php $interval = new DateInterval('P3W2D'); var_dump($interval); ?>

Resultado de ejecutar el código:

DateInterval Object ( 'y' => 0 'm' => 0 'd' => 23 'h' => 0 'i' => 0 's' => 0 )

Ejemplo

Creemos un intervalo de 5 meses, 10 días y 6 horas:

<?php $interval = new DateInterval('P5M10DT6H'); var_dump($interval); ?>

Resultado de ejecutar el código:

DateInterval Object ( 'y' => 0 'm' => 5 'd' => 10 'h' => 6 'i' => 0 's' => 0 )

Ejemplo

Creemos un intervalo de 2 años y 15 minutos:

<?php $interval = new DateInterval('P2YT15M'); var_dump($interval); ?>

Resultado de ejecutar el código:

DateInterval Object ( 'y' => 2 'm' => 0 'd' => 0 'h' => 0 'i' => 15 's' => 0 )

Ejemplo

Creemos un intervalo de 1 día, 12 horas y 30 segundos:

<?php $interval = new DateInterval('P1DT12H30S'); var_dump($interval); ?>

Resultado de ejecutar el código:

DateInterval Object ( 'y' => 0 'm' => 0 'd' => 1 'h' => 12 'i' => 0 's' => 30 )

Ejemplo

Creemos un intervalo negativo de 1 año y 3 meses (intervalo hacia atrás):

<?php $interval = new DateInterval('P1Y3M'); $interval->invert = 1; var_dump($interval); ?>

Resultado de ejecutar el código:

DateInterval Object ( 'y' => 1 'm' => 3 'd' => 0 'h' => 0 'i' => 0 's' => 0 'invert' => 1 )

Ejemplo

Creemos un intervalo negativo de 2 horas, 30 minutos (intervalo hacia atrás):

<?php $interval = new DateInterval('PT2H30M'); $interval->invert = 1; var_dump($interval); ?>

Resultado de ejecutar el código:

DateInterval Object ( 'y' => 0 'm' => 0 'd' => 0 'h' => 2 'i' => 30 's' => 0 'invert' => 1 )

Ejemplo

Añadamos un intervalo a la fecha actual:

<?php $date = new DateTime('2023-01-01'); $interval = new DateInterval('P10D'); $date->add($interval); echo $date->format('Y-m-d'); ?>

Resultado de ejecutar el código:

'2023-01-11'

Ejemplo

Calculemos la diferencia entre dos fechas:

<?php $date1 = new DateTime('2023-01-01'); $date2 = new DateTime('2023-02-15'); $interval = $date1->diff($date2); echo $interval->format('%m meses %d días'); ?>

Resultado de ejecutar el código:

'1 meses 14 días'

Ver también

Español
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Usamos cookies para el funcionamiento del sitio, análisis y personalización. El procesamiento de datos se realiza de acuerdo con la Política de privacidad.
aceptar todas configurar rechazar