La risposta accettata funziona solo se sai già se il giorno in questione è in questa settimana o settimana prossima. Cosa succede se non lo sai? Hai semplicemente bisogno del prossimo giovedì disponibile dopo una data arbitraria?
In primo luogo, si desidera sapere se il giorno in questione è più piccolo o più grande del giorno desiderato. Se è più grande, vuoi usare la prossima settimana. Se è più piccolo, puoi utilizzare il lunedì o il giovedì della stessa settimana.
const dayINeed = 4; // for Thursday
if (moment().isoWeekday() <= dayINeed) {
return moment().isoWeekday(dayINeed);
} else...
Se siamo oltre il giorno che vogliamo già (se per esempio, il nostro momento è un Venerdì, e vogliamo che il prossimo Giovedi disponibili), poi si desidera una soluzione che vi darà "il Giovedi del la settimana che segue il nostro momento ", indipendentemente dal giorno in cui è il nostro momento, senza alcuna aggiunta/sottrazione imperativa. In poche parole, vuoi entrare nella prossima settimana, usando moment().add(1, 'weeks')
. Una volta che sarai nella settimana seguente, puoi selezionare qualsiasi giorno della settimana desiderata, usando moment().day(1)
.
Insieme, questo vi darà il giorno dopo disponibile che soddisfi le vostre esigenze, indipendentemente da dove il vostro momento iniziale si trova nella sua settimana:
const dayINeed = 4; // for Thursday
// if we haven't yet passed the day of the week that I need:
if (moment().isoWeekday() <= 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 day
return moment().add(1, 'weeks').isoWeekday(dayINeed);
}
Vedi anche: https://stackoverflow.com/a/27305748/800457
Come dell'ultimo momento è possibile utilizzare il nome del giorno stesso per esempio momento(). Giorno ("Lunedi") –