JavaScriptで意外と苦戦する!Dateオブジェクトのメソッド紹介

JavaScript
スポンサーリンク

はじめに

JavaScriptのプログラムを書いているときに日付を扱いたいときがあります。JavaScriptに標準で用意されているのが、Dateオブジェクトです。

Dateオブジェクトは日時をミリ秒形式のデータとして持つオブジェクトです。日付の計算を行うときにはGETメソッドとGETメソッドを使って計算できます。

Dateオブジェクトのリファレンスはこちらです。

Dateオブジェクト

オブジェクトの生成

Dateオブジェクトを使うときは必ずオブジェクトの生成を行います。Dateオブジェクトの生成でよく使うのは3パターンです。

  1. 今日日付で生成
  2. 文字列指定で生成
  3. 数値指定で生成

今日の日付で生成する場合はこのように書きます。引数は必要ありません。

var date = new Date();  //2020年4月25日

文字列指定で生成する場合はこのように書きます。引数には文字列を渡します。

var date1 = new Date('2020-04-25');  //2020年4月25日

var date2 = new Date('2020/04/25');  //2020年4月25日

数値指定で生成する場合はこのように書きます。引数には(年,月,日)を渡します。ただし月は実際の月から1つずれて0~11となります。

var date = new Date(2020,3,25);  //2020年4月25日

ここで作成したオブジェクトを使用してメソッドを使います。

GETメソッド

年を取得する

オブジェクトが持つ日時データの「年」を取得します。

var date = new Date();
var year = date.getFullYear();  //2020

月を取得する

オブジェクトが持つ日時データの「月」を取得します。ただし、0 – 11で取得するため。1を加算する必要があります。

var date = new Date();
var month = date.getMonth() + 1;  //4

日を取得する

オブジェクトが持つ日時データの「日」を取得します。

var date = new Date();
var day = date.getDate();  //25

曜日を取得する

オブジェクトが持つ日時データの「曜日」を取得します。0(日)-6(土)の数値で取得します。

var date = new Date();  //2020年4月25日(土)
var weekDay = date.getDay();  //6

時間を取得する

オブジェクトが持つ日時データの「時間」、「分」、「秒」を取得します。

var date = new Date();  //2020年4月25日 20時30分15秒
var hour = date.getHours();  //20
var minute = date.getMinutes();  //30
var second = date.getSeconds();  //15

SETメソッド

setメソッドは取得したオブジェクトに値を設定します。

使い方は基本的にGETメソッドと同じですが、引数に設定したい数値を設定します。メソッド名はgetをsetにします。使用するときはこのように書きます。

//オブジェクトの生成
var date = new Date();  //2020年4月25日 20時30分15秒

//「年」を設定、引数は4桁で年
date.setFullYear(2000); 

//「月」を設定、引数は0-11で月
date.setMouth(11);

//「日」を設定、引数は1-31で日
date.setDate(31);

//「時間」を設定、引数は0-23で時間
date.setHours(23);

//「分」を設定、引数は0-59で分
date.setMinutes(59);

//「秒」を設定、引数は0-59で秒
date.setSeconds(59);

//コンソールに出力して確認する
console.log(date); //2000年12月31日 23時59分59秒

まとめ

このようにDateオブジェクトを生成し、getメソッドとsetメソッドを使って計算できます。

月は0-11で保持されていることや、曜日は日曜始まりになっていることなど知らないと実際にコーディングしているときに意外と苦戦するので覚えておきましょう。

また複雑な計算をするときはDateオブジェクトだとかなりコードの量が増えてしまい、バグの原因になったり、コードの管理が大変になってしまいます。日付の計算はライブラリがたくさん出ているので使ってみてはいかがでしょうか。私はmoment.jsというライブラリを使っています。

スポンサーリンク
JavaScriptプログラミング
スポンサーリンク
この記事を書いた人

フリーランスエンジニアです。
未経験からSIer企業に入社して開発案件でプログラミングを学び27歳でフリーランスになりました。
主にHTML,CSS,JavaScript,Javaを書いています。
本を読むことが好きなのでIT以外にもいろいろ読んでいます。
好奇心旺盛でとりあえずやってみる精神。
楽しいことが生きがいで、仕事も私生活も楽しくなるように日々奮闘中。
お酒を飲みすぎないことが目標

まさきをフォローする
シェアする
まさきのエンジニア図書館
タイトルとURLをコピーしました