JavaScriptで曜日を取得する方法を初心者向けに解説!getDayメソッドの使い方
先生と生徒の会話形式で理解しよう
生徒
「JavaScriptで今日は何曜日かを知る方法ってありますか?」
先生
「はい、DateオブジェクトのgetDay()メソッドを使うと、曜日を数字で取得できます。」
生徒
「数字で取得するとはどういう意味ですか?」
先生
「曜日は0から6までの数字で返ってきます。0が日曜日、1が月曜日、6が土曜日です。」
生徒
「なるほど。それを文字で表示することはできますか?」
先生
「もちろんです。配列と組み合わせると簡単に曜日を文字で表示できます。」
1. getDayメソッドの基本
getDay()は、Dateオブジェクトの曜日を取得するメソッドです。返される値は0〜6の数字で、0が日曜日、1が月曜日、2が火曜日…6が土曜日です。
const today = new Date();
const dayNumber = today.getDay();
console.log(dayNumber); // 0:日曜, 1:月曜, ... 6:土曜
3
数字だけでは曜日が直感的にわかりにくいため、文字列に変換すると便利です。
2. 数字から曜日名に変換する方法
曜日名を配列に入れて、getDay()で取得した数字をインデックスとして使います。
const days = ["日曜日", "月曜日", "火曜日", "水曜日", "木曜日", "金曜日", "土曜日"];
const today = new Date();
const dayName = days[today.getDay()];
console.log("今日は " + dayName + " です。");
今日は 水曜日 です。
これで、曜日を文字列として簡単に表示できます。
3. 任意の日付の曜日を取得する
特定の日付の曜日も取得できます。Dateオブジェクトを作成し、getDay()を呼び出すだけです。
const specificDate = new Date(2025, 10, 18); // 11月18日(0が1月)
const dayName = days[specificDate.getDay()];
console.log("2025年11月18日は " + dayName + " です。");
2025年11月18日は 火曜日 です。
月は0から始まる点に注意しましょう。
4. getDayでよくあるエラーと注意点
- 0〜6の数字を直接表示すると曜日がわかりにくい
- 月を1月〜12月と勘違いして入力すると意図した日付にならない
- 文字列からDateを作る場合、ブラウザによって解釈が異なる可能性があるのでISO形式を使うのがおすすめ
// ブラウザ依存の例
const date1 = new Date("11/18/2025");
console.log(days[date1.getDay()]); // 環境によって火曜以外になる可能性あり
// ISO形式で安全
const date2 = new Date("2025-11-18");
console.log(days[date2.getDay()]); // 火曜日
5. 曜日取得の応用例
カレンダー作成やスケジュールアプリで、曜日を表示したいときに役立ちます。例えば、今日が土日か平日かを判定することも簡単です。
const today = new Date();
const dayNumber = today.getDay();
if (dayNumber === 0 || dayNumber === 6) {
console.log("今日は週末です!");
} else {
console.log("今日は平日です。");
}
今日は平日です。
このように曜日の数字を利用すると条件分岐にも活用できます。