Entiendo que esta es una pregunta popular en Internet. Pero el punto es que necesito hacer algo con precisión y como no estoy muy familiarizado con el trabajo con fechas, necesitaba hacer esta pregunta.
Mi problema es el siguiente, a partir de un timestamp tengo que definir ciertas acciones. Estas acciones se toman bajo las siguientes condiciones:
Prep : comienza aproximadamente una hora antes de la marca de tiempo;
Run : comienza justo en la marca de tiempo;
Reset : esta acción se realiza si han pasado 15 minutos después de la marca de tiempo;
Teniendo en cuenta que la marca de tiempo sería la siguiente:
const timestamp = "2021-11-16T09:18:02+0000"Tuve la idea de hacerlo de esta manera:
const time = moment(timestamp).diff(moment(), "minutes")Pero para ser honesto, no sé cómo puedo mejorar esto. ¿Puede usted ayudar? 😔
No hay necesidad de momento
esto debería ayudarte a empezar
const timestamp = "2021-11-16T09:18:02+0000" const d = new Date(timestamp) const prep = new Date(timestamp); prep.setHours(prep.getHours()-1);// Prep - starts about an hour before timestamp; // Run - starts right at timestamp; const resetTime = new Date(timestamp) // Reset - this action is taken if 15 minutes have passed after the timestamp; resetTime.setMinutes(resetTime.getMinutes()-15) console.log(d) console.log(prep) console.log(resetTime) console.log((d.getTime()-prep.getTime())/60000)Esta es la solución que encontré adecuada usando momentjs
const timestamp = "2021-11-16T09:18:02+0000" const reset = moment(timestamp).add(15, 'minutes').format('LT') const current = moment(timestamp).format('LT') const prev = moment(timestamp).subtract(1, 'hour').format('LT') console.log("Reset:",reset,"\nCurrent",current,"\nPrev",prev) <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.1/moment.min.js"></script>Que cuando se desconecta
reset 3:03 p. m. current 2:48 p. m. prev 1:48 p. m.
Para más información sobre momentjs