JavaScript - Date オブジェクトで日付と時刻を取得する方法

Date オブジェクトで現在日時を取得する方法を紹介します。getMonth() や getHours() など日時に関するメソッドを使って、今日の日付や現在の時刻を表示できるようになりましょう。

JavaScript - Date オブジェクトで日付と時刻を取得する方法
Photo by Towfiqu barbhuiya / Unsplash

Date オブジェクトとは?

Date オブジェクトは、JavaScript にあらかじめ組み込まれているオブジェクトです。日付と時刻の情報を格納し、日時に関するさまざまなメソッドを持っています。

今回解説するのは、Date オブジェクトを利用して現在日時を取得する方法です。また、記事の後半では、文字列を表すテンプレートリテラル ${ } で日時を表示する方法も紹介します。

Date オブジェクトについて学んでいく前に、JavaScript のオブジェクトとはどういうものか知っていますか?オブジェクトの基本を知りたい方は、以下の記事を参考にしてくださいね。

JavaScript - オブジェクトの基本【初心者向け】
この記事では、オブジェクトとは何か、プロパティやメソッドの意味、オブジェクトを作る方法であるオブジェクトリテラルとコンストラクタについて、初心者向けに簡単に紹介します。

現在日時を取得する - new Date()

Date オブジェクトを使うときは、new 演算子を使って呼び出し、新しいオブジェクトを作ります。括弧 () に引数なしで呼び出すと、現在日時を持つオブジェクトを作ることができます。

// 現在日時を持つnowという名前のオブジェクトを作る
const now = new Date();

新しく作った now オブジェクトが現在日時を持っているかどうか、コンソールに出力して確認してみましょう。コードを実行した日時が「2023年8月24日(木)15時26分57秒」の場合、結果は以下のようになります。

const now = new Date();

// 現在日時をコンソールに出力する
console.log(now);

// コンソール出力結果
Thu Aug 24 2023 15:26:57 GMT+0900 (日本標準時)

Date オブジェクトが持つさまざまなメソッドは、新しく作った now オブジェクトから利用可能です。オブジェクトにアクセスするためには、オブジェクト名に続けてドット.を書き、そのあとにメソッドを書きます。

now.メソッド()

ではこれから、日付や時刻のメソッドを使って now オブジェクトの情報を取得する方法を見ていきましょう。

  • 年を取得する - getFullYear()

getFullYear() メソッドでは、「年」を取得することができます。年は4桁で表示されます。

now.getFullYear() // 2023年の場合に取得できる値 -> 2023
  • 月を取得する - getMonth()

getMonth() メソッドでは、「月」を取得することができます。返る値は「0」から「11」です。0 は1月で、11 が12月となります。実際の月からマイナス 1 であることに注意しましょう。

now.getMonth() // 8月の場合に取得できる値 -> 7
  • 日を取得する - getDate()

getDate() メソッドでは、「日」を取得することができます。「日」は日付そのままの値が返ります。

now.getDate() // 24日の場合に取得できる値 -> 24 
  • 曜日を取得する - getDay()

getDay() メソッドでは、「曜日」を取得することができます。返る値は「0」から「6」です。0 は日曜日で、6 が土曜日となります。

now.getDay() // 木曜日の場合に取得できる値 -> 4

今日の日付を表示するコード

ここまで紹介してきたメソッドを使って、今日の日付を「◯年◯月◯日◯曜日」のようにまとめて表示してみましょう。

今日の日付をコンソールに表示するコード:

const now = new Date();

const year = now.getFullYear();
// 月の表示には1を足す
const month = now.getMonth() + 1;
const date = now.getDate();
const day = now.getDay();
// 曜日の表示には配列を使う
const daysOfWeek = ['(日)', '(月)', '(火)', '(水)', '(木)', '(金)', '(土)'];

const today = `${year}年${month}月${date}日${daysOfWeek[day]}`;
console.log(today);

// コンソール出力結果(今日の日付が2023年8月24日(木)の場合)
2023年8月24日(木)

ここでポイントとなるのは、「月」と「曜日」です。getMonth() メソッドや getDay() メソッドで取得した値をそのまま使用すると、今日の日付は正しく表示されません。

月の表示には 1 を足す

getMonth() メソッドで取得できる値は「0」から「11」ですね。実際の月からマイナス 1 の値になるので、月を表示するときは取得した値に 1 を足す必要があります。

// 月の表示には1を足す
const month = now.getMonth() + 1;

曜日の表示には配列を使う

getDay() メソッドで取得できる値は「0」から「6」です。でも、数値のまま表示しても何曜日か分かりませんよね。「日曜日」「月曜日」などの文字列で表示するためには、配列を使います。取得した 0 から 6 の値は、配列のインデックスとして使用しますよ。

配列には、表記したいスタイルの文字列を格納しましょう。ここでは、「(日)」「(月)」と表示されるように、配列 daysOfWeek を作ります。

// 曜日の表示には配列を使う
const daysOfWeek = ['(日)', '(月)', '(火)', '(水)', '(木)', '(金)', '(土)'];

getDay() メソッドで得られる値は、0 が日曜日です。配列のインデックスは 0 から始まるので、配列には日曜日から格納していく、ということに注意してくださいね。

配列については、こちらの記事も参考にしてください。

JavaScript - 背景色を変更する方法 - 配列からランダムに色を選ぶには?
JavaScript で要素のスタイルを変更する方法を学びましょう。ユーザーのクリックで背景色を変えるコードを、基本と応用に分けて解説します。プログラミング初心者の方や、配列や乱数について知りたい方におすすめの内容となっています。

現在の時刻を表示するコード

時刻の情報にアクセスするためには、以下のようなメソッドを使います。現在の時刻を「◯時◯分◯秒」のように表示してみましょう。

  • getHours():「時間」を取得します。返る値は「0」から「23」です。
  • getMinutes():「分」を取得します。返る値は「0」から「59」です。
  • getSeconds():「秒」を取得します。返る値は「0」から「59」です。
  • getMilliseconds():「ミリ秒」を取得します。返る値は「0」から「999」です。

現在の時刻をコンソールに表示するコード:

const now = new Date();

const hour = now.getHours();
const minute = now.getMinutes();
const second = now.getSeconds();

const time = `${hour}時${minute}分${second}秒`;
console.log(time);

// コンソール出力結果(現在時刻が15時26分57秒の場合)
15時26分57秒

ここまで、Date オブジェクトのメソッドで現在日時を取得する方法を解説しました。

テンプレートリテラルで文字列を表示する

最後に、文字列を表すテンプレートリテラルについて簡単に説明します。テンプレートリテラルは、文字列を `バッククウォート(バックティック)` で囲む書き方です。

上で紹介したコードでは、日付や時刻を表す文字列を以下のようにテンプレートリテラルで書いています。

  • `${year}年${month}月${date}日${daysOfWeek[day]} `
  • `${hour}時${minute}分${second}秒 `

文字列を表すときは、引用符のシングルクウォート ' ' やダブルクウォート " " で囲んで書きますよね。それ以外にも、JavaScript ではバッククウォート ` ` を使うこともできます。

文字列の例:

'こんにちは' // シングルクウォート(文字列リテラル)
"こんにちは" // ダブルクウォート(文字列リテラル)
`こんにちは` // バッククウォート(テンプレートリテラル)

テンプレートリテラルでは、ドルマークと波括弧が合わさった ${ } を使うことで、変数を文字列に組み込むことができます。連結するための + を使わずに変数と文字列をつなげることができるので、コードが短く分かりやすくなりますよ。

変数を文字列に組み込む書き方の例:

// テンプレートリテラル
`${hour}時${minute}分${second}秒`

// 文字列リテラル
hour + '時' + minute + '分' + second + '秒'

まとめ

今回は、JavaScript の Date オブジェクトで現在日時を取得する方法を紹介しました。

Date オブジェクトを new 演算子で呼び出すと、現在日時を格納した新しいオブジェクトを作ることができます。Date オブジェクトにはさまざまなメソッドがあり、日付や時刻を簡単に表現できるようになっています。月は 0 から 11、曜日は 0 から 6 の数値となることに注意して、Date オブジェクトを使ってみてくださいね。

最後まで読んでいただき、ありがとうございます。この記事をシェアしてくれると嬉しいです!

メンバー登録で Pyxofy がもっと便利にもっと楽しく!詳しくはこちらをご覧ください。

こちらもチェック!Twitter @pyxofyLinkedInMastodonFacebook

関連記事

JavaScript - デジタル時計の作り方
Date オブジェクトを使ってデジタル時計を作ります。setInterval() で1秒ごとに時間を更新する方法や、表示する桁数を揃えるゼロパディングの方法、アロー関数 => の書き方について学びましょう。
CSS Art
Articles for creating CSS Art.
CSS Animation
Articles for creating CSS Animation.
Scratch - Pyxofy
Scratch 3.0の使い方を、プログラミング初心者や子どもにも分かりやすく紹介しています。