JavaScriptでは次のようにDateオブジェクト(オプションなし)を作成し、そのメソッドにアクセスすることで現在の年月日や時刻などを調べられます。
1 2 |
/** 現在のDateオブジェクトを作成 */ var today = new Date(); |
上コードみたいにオブジェクトを作成して日時取得用のメソッドを呼び出すだけなんですが、これが意外と忘れやすいんですよね。
そこでDateオブジェクトから現在の年月日・時刻を調べる方法(メソッド)をまとめました。
このページの目次
getFullYear() - 年(西暦)を返す
現在年(西暦)の取得には Date.getFullYear メソッドを使います。その名前通り現在の年を 2018 みたいな西暦で返してくれる機能を持つメソッドです。
ちなみに昔だと Date.getYear を使ってましたが現在はWeb標準からは削除されているみたいです。なので間違って getYear の方を使わないように要注意
使用コード例 : 現在年(西暦)をコンソール表示
1 2 3 4 5 |
var today = new Date(); var year = today.getFullYear(); console.log('今日は西暦 ' + year + ' 年'); /// => 今日は西暦 2019 年 |
使い方については特に注意点はないです。上コードみたいに純粋に西暦を返すだけなので
getMonth() - 月を返す
現在月の取得に使われるのが Date.getMonth メソッドで、今何月なのかを調べたければこのメソッドを呼び出せばOKです。
ただし返り値は 0 を基点とした値であることに注意。例えば5月だったら 4 、 11月だったら 10 のように (月 - 1) の値を返すことに少し気を付けないといけません。
使用コード例 : 現在月をコンソール表示
1 2 3 4 5 |
var today = new Date(); var month = today.getMonth(); console.log('今日は ' + (month + 1) + ' 月'); /// => 今日は 1 月 |
getMonth が返してくる月は 0 ~ 11 なので上コードみたく表示する時は +1 しないとダメです。そうしないと0月とかいう訳の分からない月が誕生してしまうので気を付けた方がいいですね。
getDate() - 日にちを返す
現在日の取得には Date.getDate メソッドを使えばOK。
これは getMonth と違って人間が数えるように 1 から始まる日付を返してくれます。なので返り値に +1 する必要はありません。
使用コード例 : 現在日をコンソール表示
1 2 3 4 5 6 |
/** 1月4日に実行した場合 */ var today = new Date(); var date = today.getDate(); console.log('今日は ' + date + ' 日'); /// => 今日は 4 日 |
getFullYear と getDate は +1 する必要なしな一方、 getMonth の返り値は +1 が必要 ・・・こういう違いがあるので年月日を表示する場合は少し注意が必要です。
getDay() - 曜日に対応する値を返す
現在の曜日を取得するには Date.getDay メソッドを使います。
ただし返り値は日曜日が 0 としてそこから1ずつ進む値であることに要注意。つまり月曜日なら 1 、火曜日なら 2 と進んでいき最終的に土曜日だと 6 の値が返されるってことです。
あと普通に文字列では返してくれないので、表示する時は次コード例みたいに工夫が必要になります。
使用コード例 : 現在曜日を日本語でコンソール表示
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
var today = new Date(); var day = today.getDay(); var dayName = ''; switch(day){ case 0: dayName = '日曜'; break; case 1: dayName = '月曜'; break; case 2: dayName = '火曜'; break; case 3: dayName = '水曜'; break; case 4: dayName = '木曜'; break; case 5: dayName = '金曜'; break; case 6: dayName = '土曜'; break; } console.log('今日は' + dayName + '日'); /// => 今日は金曜日 |
上コードは getDay の返り値に対応する曜日名を dayName に代入し、最後にコンソール表示している例。switch文を使って地道に値に対応する曜日名を代入してます。
実際はこんなコードをいちいち書かず、連想配列とか使った方がスマートですね。
getHours() - 何時かの値を返す
今何自時を調べるには Date.getHours メソッドを呼び出せばOK。返り値は 0 ~ 23 の範囲です。
ただし24時が 0 になるので返り値に +1 する必要はありません。例えば午前6時なら 6 、午後8時なら 21 みたいに普通の24時間表記の値が返ってきます。
使用コード例 : 今何時かをコンソール表示
1 2 3 4 5 6 7 8 9 |
/** 午前9時にコードを実行 */ var today = new Date(); var hours = today.getHours(); /** 人間ように補正 */ hours = (hours !== 0) ? hours : 24; console.log('ただ今 ' + hours + ' 時'); /// => ただ今 9 時 |
上コードでは返り値が 0 の場合は 24 になるように補正しています。
こういう時刻表示のコードみたいに
- 現在時間を画面表示したい
- 時間帯で処理を切り替えたい
などの場合は24時の扱いに少しだけ注意が必要かもしれません。
getMinutes() - 何分かの値を返す
今何分かを取得するのに使えるのが Date.getMinutes メソッド。返り値は 0 ~ 59 までの範囲です。
このメソッドも60秒で 0 が返されるので返り値に +1 する必要はありません。例えば1時5分なら 5 が、6時30分なら 30 みたいに人間が数えるのと同じ分数を返してきます。
使用コード例 : 現在の分をコンソール表示
1 2 3 4 5 6 7 8 9 |
/** 午前10時08分に実行 */ var today = new Date(); var minutes = today.getMinutes(); /** 人間ように補正 */ minutes = (minutes !== 0) ? minutes : 60; console.log('ただ今 ' + minutes + ' 分'); /// => ただ今 8 分 |
このコードも getHours と同じように60秒の場合だけ補正しています。そうしないと「ただ今 0 分」みたいな不自然な値が表示されてしまうので注意
getSeconds() - 何秒かの値を返す
現在時刻が何秒かを取得するには Date.getMinutes メソッドを使えばOK。返り値は 0 ~ 59 の範囲です。
ここまでの流れで予想がつくかもですが、これも返り値を +1 する必要はありません。ただし60秒の場合は 0 が返されるのでそこだけ注意が必要です。
使用コード例 : 現在秒をコンソール表示
1 2 3 4 5 6 7 8 9 |
/** 午前10時12分17秒に実行 */ var today = new Date(); var seconds = today.getSeconds(); /** 人間ように補正 */ seconds = (seconds !== 0) ? seconds : 60; console.log('ただ今 ' + seconds + ' 秒'); /// => ただ今 17 秒 |
時間とか分の場合と同じく返り値 0 の場合だけ 60 になるように補正しています。それ以外は普通に秒数が返ってくるだけなので特に注意点もありません。
ここまでのまとめ
ここまで紹介したメソッドを簡単にまとめると次の通り
- Date.getFullYear()
年を西暦で返すメソッド。 getYear は現在では削除されたので使用しないよう注意
- Date.getMonth()
月を 0 ~ 11 の範囲で返すメソッド。画面表示する場合は返り値に +1 することが必要
- Date.getDate()
日にちを 1 から始まる人間が数えるのと同じ数字で返すメソッド。
- Date.getDay()
曜日を 0 ~ 6 の数字で返すメソッド。返り値は日曜日を 0 として1ずつ進む値
- Date.getHours()
時間を 0 ~ 23 までの範囲で返すメソッド。24時の場合だけ 0 が返すことに注意
- Date.getMinutes()
分を 0 ~ 59 までの範囲で返すメソッド。60分の場合だけ 0 を返すことに注意
- Date.getSeconds()
秒を 0 ~ 59 までの範囲で返すメソッド。60秒の場合だけ 0 を返すことに注意
特に getMonth は (月 - 1) の値が返ってくることに注意です。あと時・分・秒については1周したときの最後の値が 0 になることも気を付けたいですね。
以上JavaScriptでの年月日・時刻の調べ方とコード例についてでした。