Trouver la date d'un jour spécifique de la semaine en cours avec Moment.js
Il y a beaucoup de façons de manipuler les dates en javascript. Je cherchais le moyen le plus simple et le plus facile de le faire sans un code long et laid. Quelqu'un m'a alors montré Moment.js .
Je souhaite utiliser la date du jour pour découvrir la date d'un jour spécifique de la semaine en cours avec cette bibliothèque. Ma tentative jusqu'ici consiste à prendre la différence entre le nombre de jours en cours (jours 0 à 6) et à vérifier combien de jours se trouvent entre celui-ci et le lundi (jour 1), ce qui n’est pas correct du tout.
Voici mon code:
var now = moment();
var day = now.day();
var week = [['sunday',0],['monday',1],['tuesday',2],['wednesday',3],['thursday',4],['friday',5],['saturday',6]];
var monday = moment().day(-(week[1][1] - day));//today minus the difference between monday and today
$("#console").text(monday);
//I need to know the date of the current week's monday
//I need to know the date of the current week's friday
Comment puis-je faire ceci? Ma méthode peut être un moyen terrible de le faire ou un peu proche. Je souhaite cependant que la solution soit nette, petite, dynamique et simple, comme tout le code devrait l'être.
Je préférerais ne pas utiliser la fonctionnalité de date JS native qui produit un code laid et désordonné dans toutes les situations que j'ai vues.
dimanche de cette semaine
moment().startOf('week')
le lundi de cette semaine
moment().startOf('isoweek')
samedi de cette semaine
moment().endOf('week')
différence entre le jour actuel et le dimanche
moment().diff(moment().startOf('week'),'days')
le mercredi de cette semaine
moment().startOf('week').add('days', 3)
Il n'est plus possible d'utiliser simplement une chaîne (par exemple, 'isoweek'), nous devons l'utiliser comme ceci:
import * as moment from 'moment';
import { unitOfTime } from 'moment';
moment().startOf('isoweek' as unitOfTime.StartOf);