JavaScriptで指定した月の日数を取得する方法をわかりやすく解説
JavaScriptで特定の月が何日あるのか(日数)を取得したい場合は、getDate()メソッドを活用します。ポイントは、Dateオブジェクトの「日」に0を指定することです。
基本的な仕組み
new Date(year, month, 0)のように日に0を指定すると、「その月の0日目」、つまり前月の最終日を表します。JavaScriptでは月が0から始まるため、引数のmonthに7を渡すと実際には8月を指し、その0日目は7月31日になります。この性質を利用すれば、うるう年も自動的に考慮され、任意の月の日数を簡単に求められます。
サンプルコード
以下のコードを実行して、指定した月の日数を取得してみましょう。
ライブデモ:
<!DOCTYPE html>
<html>
<body>
<script>
var days = function(month, year) {
return new Date(year, month, 0).getDate();
};
document.write("7月の日数: " + days(7, 2012)); // 2012年7月
document.write("<br>9月の日数: " + days(9, 2012)); // 2012年9月
</script>
</body>
</html>出力結果
7月の日数: 31 9月の日数: 30
このように、days(7, 2012)は7月の31日、days(9, 2012)は9月の30日を正しく返します。カレンダー生成や日付計算など、実務でも頻繁に使われるテクニックなので、ぜひ覚えておきましょう。
-
JavaScriptで親要素の子要素を取得する方法【サンプルコード付き】
JavaScriptでは、親要素が持つchildrenプロパティを参照することで、その直下にある子要素をまとめて取得できます。本記事では、実際に動作するサンプルコードを使いながら、具体的な手順をわかりやすく解説します。 サンプルコード 以下は、JavaScriptを使って親要素(parent1)の子要素を取得し、ボタンのクリックで一括表示させる例です。 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta nam
-
JavaScriptのforEach()でループ内に連番(シーケンス番号)を取得する方法
JavaScriptでループ処理の中に連番(シーケンス番号)を振りたい場合は、forEach()メソッドを使うのが便利です。カウンター用の変数を用意し、ループが回るたびに値をインクリメントすることで、簡単に連番を生成できます。サンプルコード以下は、ネストされた配列の各要素に対して連番を出力する例です。let studentDetails = [ { id: 101, details: [{name: John}, {name: David}, {name: Bob}] }, { id: 102, details: [{name: Carol}, {n