こんにちは
以下は、日付操作で便利なライブラリ moment を使ってみたコード例です。
html
1<ul class="wednesdays" />
javascript
1const start = moment('2019-11-01'),
2 end = moment('2020-01-31'),
3 excludedDates = [
4 moment('2019-11-20'),
5 moment('2020-01-01')
6 ];
7
8const item = (m) => {
9 const listItem = document.createElement('li');
10 listItem.textContent = m.format('YYYY年MM月DD日');
11 return listItem;
12}
13
14for (let date=start.day(10); date <= end; date.add(1, 'week')) {
15 if(excludedDates.some(m => +m === +date))
16 continue;
17
18 document.querySelector('.wednesdays').appendChild(item(date));
19}
If the range is exceeded, it will bubble up to other weeks.
moment().day(-7); // last Sunday (0 - 7)
moment().day(0); // this Sunday (0)
moment().day(7); // next Sunday (0 + 7)
moment().day(10); // next Wednesday (3 + 7)
moment().day(24); // 3 Wednesdays from now (3 + 7 + 7 + 7)
備考
上記のコードを、2019-11-01〜2020-01-31ではない、別の範囲で使おうとする場合に、開始日付(上記のコードでは start
)が、水曜日の場合は
let date=start.day(10);
としているところを
let date=start.day(3);
とする必要がある点を考慮しなければなりません。