Mostrar una cuenta regresiva
Parte de la sección Lógica y Flujo del Journey de PHP de Coddy — lección 64 de 68.
Desafío
FácilRecibirás tres entradas: una cadena JSON que representa un arreglo de eventos, una cadena de fecha en formato YYYY-MM-DD que representa la fecha de hoy, y el nombre de un evento para mostrar la cuenta regresiva.
La primera entrada será una cadena JSON en este formato: [{"name":"Team Meeting","date":"2024-04-15","location":"Office"},{"name":"Conference","date":"2024-05-20","location":"Convention Center"}]
La segunda entrada será una cadena de fecha en este formato: 2024-04-01
La tercera entrada será el nombre de un evento en este formato: Team Meeting
Lee las tres entradas y decodifica la cadena JSON en un arreglo de eventos. Encuentra el evento que coincida con el nombre del evento proporcionado. Crea objetos DateTime tanto para la fecha de hoy como para la fecha del evento.
Calcula la diferencia entre la fecha del evento y la fecha de hoy. Utiliza el método diff() en el objeto DateTime de hoy, pasando el objeto DateTime del evento como parámetro. Esto devuelve un objeto DateInterval. Accede a la propiedad days de este objeto para obtener el número de días entre las dos fechas.
Imprime la cuenta regresiva en el siguiente formato:
Countdown to [event name]: [number of days] days
Si el evento no se encuentra en el arreglo, imprime: Event not found
Formato de entrada:
- Primera línea: Una cadena JSON que representa el arreglo de eventos con las claves
name,date, ylocation - Segunda línea: Una cadena de fecha en formato YYYY-MM-DD que representa la fecha de hoy (ejemplo:
2024-04-01) - Tercera línea: El nombre de un evento para mostrar la cuenta regresiva (ejemplo:
Team Meeting)
Salida esperada: Una sola línea que muestre la cuenta regresiva en el formato: Countdown to [event name]: [number of days] days, o Event not found si el evento no existe
Pruébalo tú mismo
<?php
// Leer entradas
$jsonString = trim(fgets(STDIN));
$todayDate = trim(fgets(STDIN));
$eventName = trim(fgets(STDIN));
// Decodificar la cadena JSON en un array de eventos
$events = (array)json_decode($jsonString, true);
// TODO: Escribe tu código a continuación
// Encontrar el evento que coincida con el nombre del evento proporcionado
// Crear objetos DateTime para la fecha de hoy y la fecha del evento
// Calcular la diferencia usando el método diff()
// Acceder a la propiedad days del objeto DateInterval
// Imprimir el resultado
echo $result;
?>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 simple2Manipulació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ón6Funciones de array de orden superior
Transformación con 'array_map''array_map' con funciones personalizadasFiltrado con 'array_filter''array_filter' con funciones personalizadasReducción con 'array_reduce'Recorrido con 'array_walk'Resumen: Procesamiento de datos9Planificador de eventos
Datos del eventoAgregar un nuevo evento