Menu
Coddy logo textTech

Modificación de objetos DateTime

Parte de la sección Lógica y Flujo del Journey de PHP de Coddy — lección 50 de 68.

Una vez que tienes un objeto DateTime, a menudo necesitas cambiarlo para representar un momento diferente en el tiempo. El método modify() te permite sumar o restar tiempo de tu objeto DateTime utilizando expresiones de lenguaje natural, haciendo que los cálculos de fechas sean intuitivos y legibles.

El método modify() acepta los mismos tipos de cadenas que funcionan con strtotime(), como '+1 day', '-2 weeks' o 'next Friday'. A diferencia de crear un objeto nuevo cada vez, este método modifica el objeto DateTime existente directamente, lo cual es eficiente para operaciones de fecha secuenciales.

<?php
$date = new DateTime();
echo $date->format('Y-m-d');  // Fecha de hoy

$date->modify('+1 week');
echo $date->format('Y-m-d');  // Una semana a partir de hoy

$date->modify('-3 days');
echo $date->format('Y-m-d');  // 4 días a partir de hoy
?>

Este enfoque le brinda una gran flexibilidad para los cálculos de fechas. Puede encadenar múltiples modificaciones o utilizar expresiones complejas como '+2 months -1 day' para realizar aritmética de fechas sofisticada mientras mantiene su código claro y fácil de mantener.

quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

challenge icon

Desafío

Fácil

Recibirás dos entradas: una cadena de fecha en el formato Y-m-d H:i:s y una cadena de modificación. La primera entrada es una fecha y hora específica (ejemplo: 2024-03-15 14:30:25), y la segunda entrada es una expresión de modificación como +1 week, -3 days o +2 months.

Lee ambas entradas, crea un objeto DateTime utilizando la cadena de fecha, utiliza el método modify() para aplicar la expresión de modificación al objeto DateTime y muestra la fecha modificada en el formato Y-m-d H:i:s.

Formato de entrada:

  • Primera línea: Una cadena de fecha en el formato Y-m-d H:i:s (ejemplo: 2024-03-15 14:30:25)
  • Segunda línea: Una cadena de modificación (ejemplo: +1 week o -3 days o +2 months)

Salida esperada: La fecha modificada formateada como Y-m-d H:i:s

Hoja de referencia

El método modify() le permite sumar o restar tiempo de un objeto DateTime utilizando expresiones de lenguaje natural:

<?php
$date = new DateTime();
$date->modify('+1 week');     // Sumar una semana
$date->modify('-3 days');     // Restar tres días
$date->modify('+2 months -1 day'); // Expresiones complejas
?>

El método modifica directamente el objeto DateTime existente y acepta los mismos formatos de cadena que strtotime(), como '+1 day', '-2 weeks' o 'next Friday'.

Pruébalo tú mismo

<?php
// Leer la cadena de fecha
$dateString = trim(fgets(STDIN));

// Leer la cadena de modificación
$modificationString = trim(fgets(STDIN));

// TODO: Escribe tu código a continuación
// Crear un objeto DateTime, aplicar la modificación y formatear el resultado


// Imprimir la fecha modificada
echo $modifiedDate;
?>
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Lógica y Flujo