JavaScriptで指定した日付の曜日を取得する方法を現役エンジニアが解説【初心者向け】
初心者向けにJavaScriptで指定した日付の曜日を取得する方法について解説しています。この操作には、DateオブジェクトのgetDay()メソッドを使います。実行する処理の流れを確認し、書き方を覚えましょう。
テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日 調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名 調査手法:インターネット調査
JavaScriptで指定した日付の曜日を取得する方法について、TechAcademyのメンター(現役エンジニア)が実際のコードを使用して初心者向けに解説します。
そもそもJavaScriptについてよく分からないという方は、JavaScriptとは何なのかについて解説した記事を読むとさらに理解が深まります。
なお本記事は、TechAcademyのオンラインブートキャンプJavaScript/jQuery講座の内容をもとにしています。
今回は、JavaScriptに関する内容だね!
どういう内容でしょうか?
指定した日付の曜日を取得する方法について詳しく説明していくね!
お願いします!
Dateオブジェクトとは
Javascriptが標準で実装している組み込みオブジェクトです。Dateオブジェクトを使うことで、Javascriptで日付や時刻を取得することができます。
例えば、以下のコードで現在日付と時刻の情報を得ることができます。
プログラム
var date = new Date(); console.log( date );
実行結果
Mon Jan 10 2020 21:32:10 GMT+0900 (日本標準時)
getDayメソッドとは
先ほど表示した日付情報では、余計な情報が含まれており実用的ではありません。では、日付だけ取得したい場合はどうすればよいのでしょうか。Dateオブジェクトには様々なメソッドが実装されていますから、日付だけを取得するためのメソッドである getDay()メソッドを使うことで目的の情報が得られます。
getDayメソッドの使い方
以下のように、Dateオブジェクトをインスタンス化して格納した変数から、getDay()メソッドを呼び出して使います。
プログラム
var date = new Date(); console.log( date.getDate() );
実行結果
10
このように、getDay()メソッドを使うことで、「何日か」という情報だけ取得することができました。
指定した日付の曜日を取得する方法
Dateオブジェクトのメソッドを使いこなすことで、「指定した日付の曜日情報だけ取得する」といったことも可能になります。曜日だけ取得するには、次の手順でプログラムを作成します。
- Dateオブジェクトのインスタンス生成時に、何月何日か指定する
- 生成したインスタンスから、曜日情報を取得する
- 曜日情報は数値で出力されるため、日本語の日~土曜日の文字列に変換する
実際に書いてみよう
コード
// 今回指定する年月日情報(2020年10月1日) var yearStr = 2020 ; var monthStr = 10 ; var dayStr = 1; // Dateオブジェクトには実際の月ー1の値を指定するため var jsMonth = monthStr - 1 ; // Dateオブジェクトは曜日情報を0から6の数値で保持しているため、翻訳する var dayOfWeekStrJP = [ "日", "月", "火", "水", "木", "金", "土" ] ; // 指定日付で初期化したDateオブジェクトのインスタンスを生成する var date = new Date( yearStr, jsMonth , dayStr ); // 木曜日は数値の4として保持されているため、dayOfWeekStrJP[4]の値が出力される console.log(dayOfWeekStrJP[date.getDay()] + '曜日');
実行結果
木曜日
まとめ
Dateオブジェクトは便利なメソッドを複数実装していますが、月と曜日の情報を0から始まる数値で持っているため、扱いに注意が必要です。
今回紹介したプログラムのように日付情報を計算・取得して間違えないように気を付けてプログラミングをしましょう。
監修してくれたメンター
寺谷文宏
WEBアプリケーションエンジニアとして数多くのプロジェクトを経験し、フロントエンドからサーバーサイドまで総合的な開発を得意としています。 TechAchademyではフロントエンド、Javaコースを担当。 |
内容分かりやすくて良かったです!
ゆかりちゃんも分からないことがあったら質問してね!
分かりました。ありがとうございます!
TechAcademyでは、初心者でもJavaScript・jQueryを使ったWebサービス公開を習得できるオンラインブートキャンプを開催しています。
また、現役エンジニアから学べる無料体験も実施しているので、ぜひ参加してみてください。