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: 59Tenga 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: 59Mi 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.