Necesito ayuda con Javascript

Hola,

Necesito tu ayuda para resolver un problema de JavaScript dentro de un proyecto escolar.

Quiero crear una herramienta en HTML y JavaScript que calcule las horas y los minutos restantes con respecto a la hora actual. Esto me permitirá conocer la hora futura.

Aquí está el código que he preparado:

HTML:

<h1>Time From Now</h1> <label>Hours</label> <input type="number" id="hours" value="0" min="0"> <label>Minutes</label> <input type="number" id="minutes" value="0" min="0"> <button onclick="calculateTime()">Calculate Future Time</button> <div id="result"></div>

JavaScript:

function calculateTime() { var hours = document.getElementById("hours").value; var minutes = document.getElementById("minutes").value; console.log(hours+", "+minutes); let currentTime = new Date(); currentTime.setHours(currentTime.getHours() + hours); currentTime.setMinutes(currentTime.getMinutes() + minutes); let futureTime = currentTime.toLocaleTimeString([], { hour: "numeric", minute: "2-digit" }); document.getElementById("result").value = "Future Time: " + futureTime; }

Lorsque j’exécute ce code, les valeurs des heures et des minutes ne sont pas récupérées. La console reste vide.

Quel pourrait être le problème ? Merci pour ton aide.

3 respuestas

  • Votos
  • Fecha
  • Fecha descendente
  1. Hola,
    No logro reproducir el problema; en mi equipo los valores se muestran correctamente en la consola.


    1. ¿Obtiene el resultado final con respecto a la hora futura?
    2. @JeenaHarry

      El div#result no posee un atributo value, puedes usar la propiedad innerHTML en lugar de value para mostrar el resultado:
      document.getElementById("result").innerHTML = "Future Time: " + futureTime;

    3. @jjs

      Ah, ya veo. Los pequeños detalles son muy importantes en la programación.

  2. ¿Qué te gustaría que haga exactamente con estas funcionalidades? Puedo ayudarte a diseñar la lógica, proporcionar código de ejemplo y explicar cómo implementarlas en un proyecto concreto (JavaScript para web, Python para backend, etc.).

    A continuación te dejo propuestas básicas para empezar:

    1. Compartir un contador en tiempo real que muestre la hora actual:

    - JavaScript (web):

    function startClock() {
      const clockEl = document.getElementById('clock');
      function update() {
        const now = new Date();
        clockEl.textContent = now.toLocaleTimeString();
      }
      update();
      setInterval(update, 1000);
    }
    window.addEventListener('DOMContentLoaded', startClock);

    2. Conversión entre formats 12h y 24h:

    - JavaScript (parse et formatage simples):

    function to24Hour(h12) {
      // h12 exemple: "02:30 PM" ou "2:30 pm"
      const t = new Date('1970-01-01T' + h12);
      // Si parsing échoue, retourner null
      if (isNaN(t)) return null;
      return t.toTimeString().slice(0,5); // "14:30"
    }
    function to12Hour(h24) {
      // h24 exemple: "14:30"
      const [h, m] = h24.split(':');
      const date = new Date();
      date.setHours(parseInt(h, 10), parseInt(m, 10));
      return date.toLocaleTimeString([], { hour: '2-digit', minute: '2-digit' });
    }

    Pour référence et plus d’options, tu peux intégrer des bibliothèques comme date-fns ou luxon selon ton stack.

    Si tu me dis le langage/ cadre que tu utilises et comment tu veux structurer l’interface (UI, API, etc.), je te fournis un exemple complet et adapté.

    1. Un ejemplo para mostrar la hora actual en tiempo real:

      www.w3schools.com/js/tryit.asp?filename=tryjs_timers_interval

      Para los formatos de 12 horas o 24 horas, puedes usar la opción "hour12" (true o false) en el segundo parámetro del método toLocaleTimeString(), además de las opciones "hour" y "minute" que ya utilizas.

  3. Quiero mostrar la hora actual en los campos de entrada.

    1er campo: Hora

    2e campo: Minutos

    3e campo: Segundos

    ¿Cómo puedo mostrar estos tres valores en tres campos de entrada diferentes?

    1. Tus preguntas están muy bien formuladas, pero en un momento hay que aprender a buscar las respuestas donde se encuentran, ¡forma parte de la metodología!

      Aquí tienes un índice: