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

158
Views
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
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!