【徹底解説】JavaScriptで日付に日数を加算するすべての方法
JavaScriptで日付に日数を加算する方法
DateオブジェクトのsetDate()メソッドを使う
setDate()
メソッドは、Date
オブジェクトの日付部分を指定した値に変更します。日数を加算するには、現在の日にちに日数を足した値をsetDate()
メソッドに渡します。
// 現在の日付を取得
const today = new Date();
// 日数を加算
const addedDate = new Date(today.setDate(today.getDate() + 7));
// 結果を出力
console.log(addedDate); // 2024-04-07
ミリ秒単位で計算する
JavaScriptでは、日付はミリ秒単位で表現されます。1日 = 86,400,000ミリ秒なので、日数を加算するには、現在のミリ秒に日数 * 86,400,000ミリ秒を加算します。
// 現在の日付を取得
const today = new Date();
// ミリ秒単位で日数を加算
const addedDate = new Date(today.getTime() + (7 * 86400000));
// 結果を出力
console.log(addedDate); // 2024-04-07
ライブラリを使う
Moment.jsなどのライブラリを使うと、日付の操作がより簡単にできます。
// Moment.jsをインストール
npm install moment
// Moment.jsをインポート
import moment from 'moment';
// 現在の日付を取得
const today = moment();
// 日数を加算
const addedDate = today.add(7, 'days');
// 結果を出力
console.log(addedDate.format('YYYY-MM-DD')); // 2024-04-07
注意点
- 月末に日数を加算すると、翌月の1日になることに注意が必要です。
- うるう年も考慮する必要があります。
これらの点を考慮した上で、上記のいずれかの方法を使って日付に日数を加算することができます。
// 現在の日付を取得
const today = new Date();
// 7日後の日付を取得
const addedDate1 = new Date(today.setDate(today.getDate() + 7));
// 7日後の日付をミリ秒単位で取得
const addedDate2 = new Date(today.getTime() + (7 * 86400000));
// Moment.jsを使って7日後の日付を取得
import moment from 'moment';
const addedDate3 = moment().add(7, 'days');
// 結果を出力
console.log(addedDate1); // 2024-04-07
console.log(addedDate2); // 2024-04-07
console.log(addedDate3.format('YYYY-MM-DD')); // 2024-04-07
実行方法
node add-days-to-date.js
出力結果
2024-04-07
2024-04-07
2024-04-07
補足
- このコードは、2024年3月31日に実行した場合の結果です。
- 他の日付で実行したい場合は、
today
変数を変更してください。 - Moment.jsを使う場合は、事前にライブラリをインストールする必要があります。
日付に日数を加算するその他の方法
Dateオブジェクトのプロパティを使う
Date
オブジェクトには、getDate()
、setDate()
、getMonth()
、setMonth()
などのプロパティがあります。これらのプロパティを使って、日付を個別に操作することができます。
// 現在の日付を取得
const today = new Date();
// 日付を取得
const date = today.getDate();
// 月を取得
const month = today.getMonth();
// 7日後の日付を取得
const addedDate = new Date(today.setMonth(month, date + 7));
// 結果を出力
console.log(addedDate); // 2024-04-07
ループを使って、日数を加算することもできます。
// 現在の日付を取得
const today = new Date();
// 7日後の日付を取得
const addedDate = new Date(today);
for (let i = 0; i < 7; i++) {
addedDate.setDate(addedDate.getDate() + 1);
}
// 結果を出力
console.log(addedDate); // 2024-04-07
第三者ライブラリを使う
日付操作に特化したライブラリを使うこともできます。
これらのライブラリを使うと、より簡単に日付を操作することができます。
- 簡単な処理であれば、
Date
オブジェクトのsetDate()
メソッドを使うのがおすすめです。 - 月末に日数を加算する必要がある場合は、
Date
オブジェクトのプロパティを使うか、ループを使う必要があります。 - より複雑な処理を行う場合は、第三者ライブラリを使うと便利です。
javascript date