JavaScriptで日付に月数を加算する方法をわかりやすく解説
JavaScriptで日付(Dateオブジェクト)に月数を加算するには、まずgetMonth()メソッドで現在の月を取得し、そこに加算したい月数を足します。さらにsetMonth()メソッドと組み合わせれば、日付そのものを指定した月数だけ進めることも可能です。
なお、getMonth()が返す月の値は「0〜11」の範囲である点に注意してください。1月が0、12月が11として返されるため、人間が普段使う月の数値として表示するには1を加算する必要があります。
サンプルコード
以下のコードは、現在の日付を取得して表示し、続いて月の値に1を加算した結果を出力する例です。そのままブラウザで実行できます。
<!DOCTYPE html>
<html>
<body>
<script>
var d, e;
d = new Date();
document.write(d);
e = d.getMonth() + 1;
document.write("<br>加算後の月 = " + e);
</script>
</body>
</html>
実際にDateオブジェクトの日付を進める方法
月の数値を表示するだけでなく、日付そのものを指定した月数だけ進めたい場合は、setMonth()メソッドを使用します。
var d = new Date(); d.setMonth(d.getMonth() + 3); // 3か月後の日付に更新 document.write(d);
このように「現在の月+加算したい月数」をsetMonth()に渡すことで、年をまたぐ場合でも自動的に適切な日付が計算されます。例えば11月に4か月を加算すれば、翌年の3月として正しく処理されます。
月末を扱う際の注意点
月末の日付を基準に加算する場合は注意が必要です。例えば1月31日に1か月を加算すると、2月31日は存在しないため、結果は3月2日や3月3日に繰り越されます。厳密に月末を基準とした計算が必要な場合は、date-fnsやDay.jsなどの日付操作ライブラリの活用も検討するとよいでしょう。
まとめ
月数の加算は「getMonth()で取得 → 加算 → 必要に応じてsetMonth()で更新」という流れが基本です。月が0始まりであることと、月末の繰り越し挙動の2点を押さえておけば、意図した通りの日付計算が行えます。
-
JavaScriptでページを印刷するにはどうすればよいですか?
JavaScriptでページを印刷するには、print()メソッドを使用します。このメソッドを呼び出すと、ブラウザの標準的な印刷ダイアログボックスが開き、どのプリンターを使用するか、部数はいくつにするかといった印刷オプションを簡単に設定できます。以下は、実際に印刷ダイアログが表示された様子の例です。サンプルコード次のコードを実行すると、ボタンをクリックするだけでページを印刷できる動作を確認できます。<!DOCTYPE html> <html> <body> &nb
-
JavaScriptで特定の要素にクラスを追加する方法をわかりやすく解説
はじめにJavaScriptでDOM要素にクラスを追加するには、まず document.querySelector や document.getElementById などのメソッドを使って対象の要素を取得し、その後に classList.add() を呼び出してクラスを追加します。例として、次のようなHTMLがあるとします。サンプルHTML<!DOCTYPE html> <html> <head></head> <body>