Resumen: Cálculos con fechas
Parte de la sección Lógica y Flujo del Journey de PHP de Coddy — lección 51 de 68.
Desafío
FácilRecibirás tres entradas: una fecha de inicio, una fecha de fin y una cadena de formato. Las dos primeras entradas son cadenas de fecha en el formato Y-m-d (ejemplo: 2024-03-15), y la tercera entrada es una expresión de modificación como +5 days, -2 weeks o +1 month.
Lee las tres entradas, crea dos objetos DateTime a partir de las fechas de inicio y fin, aplica la expresión de modificación a la fecha de inicio y luego determina qué fecha es posterior: la fecha de inicio modificada o la fecha de fin original. Imprime la fecha posterior en el formato Y-m-d.
Formato de entrada:
- Primera línea: Una cadena de fecha de inicio en el formato
Y-m-d(ejemplo:2024-03-15) - Segunda línea: Una cadena de fecha de fin en el formato
Y-m-d(ejemplo:2024-04-10) - Tercera línea: Una cadena de modificación (ejemplo:
+5 dayso-2 weeks)
Salida esperada: La fecha posterior entre la fecha de inicio modificada y la fecha de fin original, formateada como Y-m-d
Pruébalo tú mismo
<?php
// Leer las tres entradas
$startDate = trim(fgets(STDIN));
$endDate = trim(fgets(STDIN));
$modification = trim(fgets(STDIN));
// TODO: Escribe tu código a continuación
// Crear objetos DateTime a partir de las fechas de inicio y fin
// Aplicar la modificación a la fecha de inicio
// Comparar la fecha de inicio modificada con la fecha de fin
// Determinar qué fecha es posterior
// Mostrar la fecha posterior en formato Y-m-d
echo $laterDate;
?>Todas las lecciones de Lógica y Flujo
1Funciones avanzadas
Funciones anónimasClosures y 'use'Funciones de flechaFunciones callbackUso de 'call_user_func'Funciones variablesPaso por referenciaFunciones recursivasResumen: Miscelánea de funciones4Arreglos multidimensionales
Crear un arreglo 2DAcceder a elementos de un arreglo 2DModificar elementos de un arreglo 2DIterar con bucles anidadosArreglos asociativos 2DResumen: Ejercicio de cuadrícula simple7Trabajando con fechas y horas
La función 'date()'Timestamps de Unix con 'time()'Introducción al objeto DateTimeFormateo de objetos DateTimeModificación de objetos DateTimeResumen: Cálculos con fechas2Manipulación avanzada de arrays
Agregar con 'array_push'Eliminar con 'array_pop'Agregar con 'array_unshift'Eliminar con 'array_shift'Fusionar arrays indexadosFusionar arrays asociativosExtraer con 'array_slice'Valores con 'in_array'Claves con 'array_search'Resumen: Ejercicio de Playlist3Ordenar Arrays
Ordenar arrays indexados de forma ascendenteOrdenar arrays indexados de forma descendenteOrdenar arrays asociativos por valorOrdenar arrays asociativos por claveOrdenación por orden naturalOrdenación personalizada con 'usort'Resumen: Ordenar tablas de clasificación