Trouver l'instance suivante d'un jour de la semaine (ie lundi) avec moment.js
Je veux obtenir la date de la prochaine lundi ou jeudi (ou aujourd'hui si elle est du Lundi ou Jeudi). Comme Moment.js fonctionne dans les limites d'un dimanche - samedi, je vais avoir à travailler sur la journée en cours et calculer la prochaine lundi ou jeudi en fonction:
if (moment().format("dddd")=="Sunday") { var nextDay = moment().day(1); }
if (moment().format("dddd")=="Monday") { var nextDay = moment().day(1); }
if (moment().format("dddd")=="Tuesday") { var nextDay = moment().day(4); }
if (moment().format("dddd")=="Wednesday") { var nextDay = moment().day(4); }
if (moment().format("dddd")=="Thursday") { var nextDay = moment().day(4); }
if (moment().format("dddd")=="Friday") { var nextDay = moment(.day(8); }
if (moment().format("dddd")=="Saturday") { var nextDay = moment().day(8); }
Cela fonctionne, mais il y a certainement une meilleure façon!
source d'informationauteur Mike Thrussell
Vous devez vous connecter pour publier un commentaire.
L'astuce ici n'est pas dans l'utilisation de Moment pour aller d'un jour particulier à partir d'aujourd'hui. C'est la généralisation, de sorte que vous pouvez l'utiliser avec n'importe quel jour, n'importe où vous êtes dans la semaine.
D'abord, vous devez savoir où vous êtes à la semaine:
moment.day()
ou un peu plus prévisible (en dépit de paramètres régionaux)moment().isoWeekday()
.L'utiliser pour savoir si la journée d'aujourd'hui est plus petit ou plus grand que le jour où vous voulez. Si il est plus petit ou égal, vous pouvez simplement utiliser cette semaine instance de lundi ou jeudi...
Mais, si aujourd'hui est plus grand que la journée que nous voulons, vous voulez utiliser le jour même de la semaine prochaine: "le lundi de la semaine prochaine", peu importe où vous êtes dans le courant de la semaine. En un mot, vous voulez d'abord aller voir dans la semaine prochaine, à l'aide de
moment().add(1, 'weeks')
. Une fois que vous êtes dans la semaine prochaine, vous pouvez sélectionner le jour que vous souhaitez, à l'aide demoment().day(1)
.Ensemble:
Voir aussi https://stackoverflow.com/a/27305748/800457
moment().day()
vous donnera un numéro de référence à la day_of_week.Ce qui est encore mieux:
moment().day(1 + 7)
etmoment().day(4 + 7)
vous donnera lundi prochain jeudi, respectivement.Voir plus: http://momentjs.com/docs/#/get-set/day/
Suivantes peuvent être utilisées pour obtenir toute la semaine prochaine, date à partir de maintenant (ou à toute date)
obtenir le lundi suivant, à l'aide de moment
À mon humble avis façon plus élégante:
Voici par exemple le prochain lundi:
Voici une solution pour trouver le lundi suivant, ou aujourd'hui si c'est lundi: