Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

197
Views
¿Cómo puedo cambiar en el tiempo una serie de marcas de tiempo en javascript?

Tengo una serie de objetos de tiempo creados así:

 let event = new Date()

Estos eventos se crean horas extras, por ejemplo:

  • primer evento creado*
  • 2 segundos después se crea otro evento
  • 5 segundos después otro evento
  • 3 segundos después se crea otro, etc...

Entonces, cada objeto de tiempo tiene el tiempo correspondiente en el que se creó.

Los eventos donde obviamente se crearon en el pasado, y hay un primer evento.

y todos se almacenan en una matriz como: [evento1, evento2, evento3...] Los eventos son el objeto que devuelve la función new Date() .

¿Cómo puedo cambiar todos estos eventos para que comiencen en el futuro?

Por el futuro me refiero, por ejemplo, cada vez que se ejecuta un evento, un clic, etc...

¿Cómo puedo cambiar su tiempo por igual para que todos los eventos vayan en el mismo orden, pero comiencen en el futuro?

Es como una grabación, siendo reproducida.

Gracias

about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

Si bien el manejo de la fecha es una de las partes bastante malas de JS 1 , este cambio breve es relativamente simple. Simplemente calculamos nuevas marcas de tiempo en función de la diferencia entre la primera fecha de la lista y la actual, y agregamos esa diferencia a nuestra nueva hora de inicio, luego creamos una Fecha a partir de esa marca de tiempo:

 const shiftEvents = (start, events) => events .map (e => new Date (e - events[0] + start .getTime ())) const events = [new Date ('2022-03-09T22:51:03.507'), new Date ('2022-03-09T22:51:05.492'), new Date ('2022-03-09T22:51:10.604'), new Date ('2022-03-09T22:51:13.551')] console .log (shiftEvents (new Date ('2022-03-16T22:59:18.219'), events))


1 Hay algo mejor en el horizonte en la propuesta de Temporal .

about 4 years ago · Juan Pablo Isaza Report

0

var events = [...]; var firstEvent = events[0]; var now = new Date(); var oldestEventAge = now.getTime() - firstEvent.getTime(); var hour = 1000 * 60 * 60; for (let e of events) { e.setTime(e.getTime() + oldestEventAge + hour); }

Aquí obtenemos el primer evento y calculamos cuántos milisegundos han ocurrido desde ahora hasta ese momento. es decir, cuántos años tiene.

Entonces definimos 1 hora en milisegundos. Así de lejos estamos empujando el primer evento hacia el futuro.

Luego, para cada evento, sumamos a su tiempo actual en milisegundos la antigüedad del evento más antiguo más una hora.

Esto dará como resultado que el evento más antiguo esté 1 hora en el futuro y que todos los eventos posteriores estén a la misma distancia del evento más antiguo y también en el futuro.

Obviamente, cambie el valor de la hour para que sea lo lejos que desee que esté el primer evento en el futuro.

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!