Anuncios

Bienvenidos sean a este post, hoy veremos una función de PHP.

Anuncios

Esta función nos resta un intervalo de una fecha en un objeto DateTime. Pasemos a ver como es su sintaxis:

date_sub(objeto, intervalo);
Anuncios

Primero pasamos el objeto DateTime a modificar y luego el intervalo. Este dato es de tipo DateInterval y se puede generar con una función práctica. Para entender como funciona, vamos a analizar el siguiente ejemplo:

PHP
<?php
$fecha = date_create();
echo date_format($fecha, "d-m-Y") . "\n";
$inter = date_interval_create_from_date_string("31 days");
date_sub($fecha, $inter);
echo date_format($fecha, "d-m-Y") . "\n";
?>
Anuncios

Lo primero es crear un objeto con la hora y fecha actuales. Los siguiente es mostrar la fecha mediante date_format. Con nuestra fecha establecida y mostrada pasemos a generar el intervalo. Para ello usamos a date_interval_create_from_date_string. Al cual le pasamos una cadena de texto para convertirlo en un objeto de tipo DateInterval. Siempre va a ser el número y luego el tipo de elemento que incrementaremos; estos pueden ser minutos, horas, días, meses, etc. pero siempre en inglés.

Anuncios

Usamos la función y le pasamos el objeto de la fecha y el intervalo. Esto procesará al objeto para luego volver a mostrar la fecha. Con esto comentado, veamos como es la salida:

$ php date_sub.php
21-03-2026
18-02-2026
$
Anuncios

Esta es una manera simple de como restar un intervalo de días. Pero también podemos hacerlo con años, meses, horas, minutos y segundos. Así como también podemos combinarlos, p.e.: 1 year 3 months; que equivale a un año y tres meses.

Nota:
En este post, hablé sobre date_interval_create_from_date_string.
Anuncios

En resumen, hoy hemos visto a date_sub, que es, para que sirve, como se utiliza, los parámetros que podemos utilizar y un ejemplo simple para ver como trabaja. Espero les haya sido de utilidad, les dejo algunas de mis redes sociales para seguirme o recibir una notificacion cada vez que subo un nuevo post:

Anuncios

Donación

Es para mantenimento del sitio, gracias!

$1.50