javascript 連続した日付を配列として生成する
- 作成日 2023.01.19
- javascript
- javascript
javascriptで、連続した日付を配列として生成するサンプルコードを記述してます。「for」文などで開始日付と終了日付を指定してループさせることで生成することができます。
環境
- OS windows11 pro 64bit
- ブラウザ chrome 109.0.5414.75
手順
連続した日付を配列として生成するには、
1. 開始日付と終了日付を用意
2. for文で1日づつ日付を加算して終了日付までループして用意した配列に「push」で追加
することで可能です。
let start = new Date("2023-01-01");
let end = new Date("2023-12-31");
let dateArr = [];
for(let day = start; day <= end; day.setDate(day.getDate()+1)) {
// フォーマットを指定
let result = `${day.getFullYear()}-${(day.getMonth()+1)}-${day.getDate()}`;
// 配列に追加
dateArr.push(result);
}
console.log(dateArr);
実行結果をみると生成されていることが確認できます。
また、以下のように「map」を使用する方法もあります。以下のコードでは連続した100個の日付を生成してます。
let start = new Date("2023-01-01");
// 1日減算
start = new Date(start.setDate(start.getDate() - 1));
// 100個生成
let dateArr = Array.apply(null, {length: 100}).map((v) =>
new Date(start.setDate(start.getDate() + 1))
);
// フォーマットを変更
dateArr = dateArr.map(v => `${v.getFullYear()}-${(v.getMonth()+1)}-${v.getDate()}` );
console.log(dateArr);
スプレッド構文とmapを使用する方法もあります。ここでは関数化してます。
const getDateArr = (start,n) =>{
start = new Date(new Date(start).setDate(new Date(start).getDate() - 1));
return [...Array(n)].map( v => new Date(start.setDate(start.getDate() + 1)) ).map(v => `${v.getFullYear()}-${(v.getMonth()+1)}-${v.getDate()}` );
}
// 開始日付と生成する個数を指定
console.log(
getDateArr("2023-01-01",100)
)
-
前の記事
google スプレッドシート 現在日付を入力するショートカットキー 2023.01.18
-
次の記事
PostgreSQL 少数末尾にある0を削除する 2023.01.19
コメントを書く