Je crée un calendrier où j'imprime les semaines dans un format tabulaire. Une exigence est que je sois capable de commencer les semaines soit le lundi soit le dimanche, selon une option de l'utilisateur. J'ai du mal à utiliser la méthode isoWeekday de moment.
// Début d'une certaine plage de dates. Peut être n'importe quel jour de la semaine.
var startOfPeriod = moment("2013-06-23T00:00:00"),
// Nous commençons au début de la première semaine.
// Lun Mar Mer Jeu Ven Sam Dim
// 20 21 22 23 24 25 26
begin = moment(startOfPeriod).isoWeekday(1); // sera déterminé par l'utilisateur
console.log(begin.isoWeekday()); // 1 - tout va bien
// Trouvons le début de cette première semaine, en respectant l'isoWeekday
begin.startOf('week');
console.log(begin.isoWeekday()); // 7 - que s'est-il passé ???
// Obtenir les en-têtes des colonnes
for (var i=0; i<7; i++) {
console.log(begin.format('ddd')); // Je veux que le lundi soit en premier !
begin.add('d', 1);
}
MODIFICATION J'ai mal interprété ce que faisait la méthode isoWeekday
. Je pensais qu'elle réglait la variable "quel jour de la semaine est le premier jour de la semaine" (qui n'existe pas). En fait, elle change simplement le jour de la semaine, tout comme moment.weekday()
, mais utilise une plage de 1 à 7 au lieu de 0 à 6.