Características:
Aplicaciones:
= 12 ? 'PM' : 'AM'; const formattedHours = hours % 12 || 12; // Convertir a formato 12 horas return `${formattedHours}:${minutes.toString().padStart(2, '0')}:${seconds.toString().padStart(2, '0')} ${ampm}`; } function tiempoTranscurrido(fecha) { const ahora = new Date(); const diferencia = ahora - fecha; // Diferencia en milisegundos const minutos = Math.floor(diferencia / (1000 * 60)); const horas = Math.floor(diferencia / (1000 * 60 * 60)); const dias = Math.floor(diferencia / (1000 * 60 * 60 * 24)); let tiempo; if (minutos < 60) { tiempo = `hace ${minutos} minuto${minutos > 1 ? 's' : ''}`; } else if (horas < 24) { tiempo = `hace ${horas} hora${horas > 1 ? 's' : ''}`; } else { tiempo = `hace ${dias} día${dias > 1 ? 's' : ''}`; } return `${tiempo} ${formatTime(fecha)}`; } function mostrarResenasAleatorias() { const numeroDeResenas = Math.floor(Math.random() * 2) + 4; // Genera un número entre 2 y 4 const indicesAleatorios = new Set(); while (indicesAleatorios.size < numeroDeResenas) { const indiceAleatorio = Math.floor(Math.random() * reviews.length); indicesAleatorios.add(indiceAleatorio); } const reseñasSeleccionadas = Array.from(indicesAleatorios).map(index => reviews[index]); const reviewsContainer = document.getElementById('reviews'); reviewsContainer.innerHTML = reseñasSeleccionadas.map(resena => `