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

155
Vistas
Temporizador de cuenta regresiva de fecha: minutos y segundos siempre 59 con moment.js

en mi aplicación quiero obtener la próxima instancia del jueves a las 00:00, obtengo una marca de tiempo como esta:

 let nextThursday = getNextThursday(); console.log('nextThursday',nextThursday); LOG nextThursday "2022-03-22T14:30:31.514Z getCountdown(nextThursday); LOG Days: 2 LOG Hours: 23 LOG Minutes: 59 LOG Seconds: 59

Tenga en cuenta que la marca de tiempo no tiene 00:00, por eso creo que los minutos y segundos restantes siempre son 59.

La función para obtener los días, horas, minutos y segundos restantes es esta:

 const getCountdown = (ending) => { var now = moment(); var end = moment(ending); // another date var duration = moment.duration(end.diff(now)); console.log(end.diff(now)) //Get Days and subtract from duration var days = duration.days(); duration.subtract(days, 'days'); //Get hours and subtract from duration var hours = duration.hours(); duration.subtract(hours, 'hours'); //Get Minutes and subtract from duration var minutes = duration.minutes(); duration.subtract(minutes, 'minutes'); //Get seconds var seconds = duration.seconds(); console.log("Days: ", days); console.log("Hours: ", hours); console.log("Minutes: ", minutes); console.log("Seconds: ", seconds); };

Mientras que los días y las horas parecen finos, los minutos y los segundos siempre devuelven 59:

 LOG Minutes: 59 LOG Seconds: 59

Mi función para obtener la siguiente instancia del día especificado es esta:

 const getNextThursday = () => { const dayINeed = 4; // for thursday const today = moment().isoWeekday(); // if we haven't yet passed the day of the week that I need: if (today <= dayINeed) { // then just give me this week's instance of that day return moment().isoWeekday(dayINeed); } else { // otherwise, give me *next week's* instance of that same day return moment().add(1, 'weeks').isoWeekday(dayINeed).utcOffset(0).set({hour:0,minute:0,second:0,millisecond:0}); //return moment().add(1, 'weeks').add(22, 'minutes').add(43, 'seconds').isoWeekday(dayINeed); } };

Sé que moment está en desuso, si conoce una manera de hacer que esto funcione usando data-fns, me encantaría verlo.

about 4 years ago · Juan Pablo Isaza
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