Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

196
Visualizações
¿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 Respostas
Responde à pergunta

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda