Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

196
Vistas
Using two gethours() but always same result in javascript

I wanted to get start time and end time separately so I wrote code like this:

const date = new Date();
let start = date.getHours() + date.getMinutes() / 60 + date.getSeconds() / 60 / 60;

function startRecord() {
  document.getElementById("1").innerHTML = start;
}

function endRecord() {
  let end = date.getHours() + date.getMinutes() / 60 + date.getSeconds() / 60 / 60;
  document.getElementById("2").innerHTML = end;
}
<p id="1">Show start time</p>
<p id="2">Show end time</p>

<button type="button" onclick="startRecord()">
  start
</button>
<button type="button" onclick="endRecord()">
  end
</button>

But I always got same result.
Start time and end time is same although I spent some time between them.
How can I get correct result?

about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

Because you have only one instance of date. You must use 2 variables of date.

about 4 years ago · Juan Pablo Isaza Denunciar

0

You need to make a new date object if you want a new time. Change your javascript to this:

    let date = new Date();
    let start = date.getHours() + date.getMinutes() / 60 + date.getSeconds() / 60 / 60;
    function startRecord() {
      date = new Date();
      document.getElementById("1").innerHTML = start;
    }
    function endRecord() {
      date = new Date();
      let end = date.getHours() + date.getMinutes() / 60 + date.getSeconds() / 60 / 60;
      document.getElementById("2").innerHTML = end;
    }
about 4 years ago · Juan Pablo Isaza Denunciar

0

Your code gets the current date/time at the time the script loads, not when the button is clicked.

You need to get the date/time in the click handler, so it reflects the moment the click happened.

Since you need to do the same calculation in both click handlers, put that logic in a function and call it from both click handlers:

function getCurrentTime() {
  const date = new Date();
  return date.getHours() + date.getMinutes() / 60 + date.getSeconds() / 60 / 60;
}  

function startRecord() {
  document.getElementById("1").innerHTML = getCurrentTime();
}

function endRecord() {
  document.getElementById("2").innerHTML = getCurrentTime();
}
<p id="1">Show start time</p>
<p id="2">Show end time</p>

<button type="button" onclick="startRecord()">
  start
</button>
<button type="button" onclick="endRecord()">
  end
</button>

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda