moment.jsで今月の月初から月末までの配列を作る
はじめに
Chartを扱う際に、任意の時間間隔かつ時間範囲での配列が欲しくなる時があります。
Angularでは Date
や import { DatePipe } from '@angular/common';
を使うことが一般的かと思いますが Chart.jsではmoment.jsを利用しているようなのでそちらでも作ってみます。
moment.js
以下のように書きました。
start
と end
を任意の時点に設定し start.add(1, 'days');
を任意の間隔にすることが可能です。
moment.jsは時系列の演算が簡単でありがたいです。
getDailyArray() { // 今月を取得 const start = moment().startOf('month'); // 来月を取得 const end = moment().endOf('month'); // 間隔を1日ずつインクリメントして配列へpush while (start.unix() <= end.unix()) { this.mounthDay.push(start.format('YYYY-MM-DD')); start.add(1, 'days'); } }
stackblitzも貼っておきます。
まとめ
任意の時間間隔かつ時間範囲での配列を作ることができました。 バッチリ同じことをやっている記事が見当たらず、調査含め15分くらいかかってしまったので誰かの数分のためにまとめてみました。