JavaScriptのDateオブジェクトを使うと、現在の日付や時刻を取得したり、特定の日付までの日数を計算したり、その他日付や時刻に関する色々な処理を行うことができます。
今回は、Dateオブジェクトの基本的な使用方法について紹介します。
なお、未経験からITエンジニアへの就職に興味がある方や未経験からプログラミングを効率よく学びたいと考えている方は、就職率98.3%で受講料無料のプログラミングスクールプログラマカレッジもおすすめです。
Dateオブジェクトは、日付や時刻を扱うためにJavaScriptで予め用意されているオブジェクトです。
Dateオブジェクトには、様々なメソッドが定義されており、これらを使用することで、時間の計算や日付の換算等をシンプルに行うことができます。
Dateオブジェクトは、次のように記述して作成します。
(2)new Date(value);
(3)new Date(dateString);
(4)new Date(year, month[, day[, hour[, minutes[, seconds[, milliseconds]]]]]);
(1)引数無しの場合は、現在日時( システムで設定された日時 ) の Date オブジェクトが生成されます。
(2)valueには、「 1 January 1970 00:00:00 UTC 」からのミリ秒数を表す整数値を指定します。
(3)dateStringには、日付を表す文字列を指定します。
(4)yearには、年を表す整数値を指定します。
この場合、0 から 99 までの値は、1900 から 1999 の値にマッピングされますが、2000年問題等を回避するためにも、なるべく完全な年を指定します。
monthには、月を表す整数値を指定します。
この場合、月は 0 ~ 11 までの整数値で表されるため、1月は 0 を、12月は 11 を指定します。
day、hour、minute、second、millisecond は、指定しなくても良い任意の引数です。
dayは 日(1~31)を、hourは 時(0~23)を、minuteは 分(0~59)を、secondは 秒(0~59)を、millisecondは ミリ秒(0~999)を、それぞれ整数値で指定します。
実際に、Dateオブジェクトを使用する際は、次のように記述します。
let day1 = new Date();
let day2 = new Date("October 31, 2017 14:05:34");
let day3 = new Date("2017-10-31T14:05:34");
let day4 = new Date(2017, 9, 31);
上記の変数 day1 ~ day4 を出力すると、次のように表示されます。
このような形の値を、必要なフォーマットに変換して使用します。
Dateオブジェクトのメソッドを使用すると、基本データから、年や月、日、などを取得することができます。
「new Date();」でシステム日時の基本データを取得した後、色々な値を取得してみます。
• 4桁の西暦年を取得
変数名.getFullYear();
• 月を取得( 1月が 0 ~ 12月が 11 となる )
変数名.getMonth();
• 日にちを取得
変数名.getDate();
• 曜日を取得( 日曜日が 0 ~ 土曜日が 6 となる )
変数名.getDay();
• 時を取得
変数名.getHours();
• 分を取得
変数名.getMinutes();
• 秒を取得
変数名.getSeconds();
基本データから取得した値は、例えば次のように使用します。
let today = new Date();
let str = "只今、"
+ today.getFullYear() + "年"
+ (today.getMonth() + 1) + "月"
+ today.getDate() + "日の"
+ today.getHours() + "時"
+ today.getMinutes() + "分"
+ today.getSeconds() + "秒です";
getMonthメソッドの返り値は、1月が 0 ~ 12月が 11 となるので、「 today.getMonth() + 1 」として月を取得します。
上記の変数 str を出力すると、次のように表示されます。
曜日を取得したい場合は、getDayメソッドを使用して、曜日に変換します。
let today = new Date();
let week = ["日", "月", "火", "水", "木", "金", "土"];
let str = "今日は、" + week[today.getDay()] + "曜日です";
getDayメソッドの返り値は、日曜日が 0 ~ 土曜日が 5 となるので、返り値がインデックス番号として利用できるような配列 [“日”, “月”, “火”, “水”, “木”, “金”, “土”] を定義します。
上記の変数 str を出力すると、次のように表示されます。
Dateオブジェクトには、次のようなメソッドが用意されています。
| getDate | 日にちを返す |
|---|---|
| getDay | 曜日を返す(0~6、日曜~土曜) |
| getFullYear | 4桁の西暦年を返す |
| getHours | 現在の時間を返す |
| getMilliseconds | ミリ秒(1000=1秒)を返す |
| getMinutes | 分を返す |
| getMonth | 月を返す(0~11、1月~12月) |
| getSeconds | 秒を返す |
| getTime | 1970年1月1日午前0時からの経過時間(秒数)を返す |
| getTimezoneOffset | 世界協定時間との時差を返す |
| getUTCDate | 世界協定時間の日にちを返す |
| getUTCDay | 世界協定時間の曜日を返す(0~6、日曜~土曜) |
| getUTCFullYear | 世界協定時間の4桁の西暦年を返す |
| getUTCHours | 世界協定時間の現在の時間を返す |
| getUTCMilliseconds | 世界協定時間のミリ秒(1000=1秒)を返す |
| getUTCMinutes | 世界協定時間の分を返す |
| getUTCMonth | 世界協定時間の月を返す(0~11、1月~12月) |
| getUTCSeconds | 世界協定時間の秒を返す |
| getYear | 年(西暦の下2桁)を返す |
| parse | 1970年1月1日午前0時から指定した日付までの経過秒数を参照 |
| setDate | 日にちを設定する |
| setFullYear | 4桁の西暦年を設定する |
| setHours | 現在の時間を設定する |
| setMilliseconds | ミリ秒(1000=1秒)を設定する |
| setMinutes | 分を設定する |
| setMonth | 月を設定する(0~11、1月~12月) |
| setSeconds | 秒を設定する |
| setTime | 1970年1月1日午前0時からの経過時間(秒数)を設定する |
| setUTCDate | 世界協定時間の日にちを設定する |
| setUTCFullYear | 世界協定時間の4桁の西暦年を設定する |
| setUTCHours | 世界協定時間の現在の時間を設定する |
| setUTCMilliseconds | 世界協定時間のミリ秒(1000=1秒)を設定する |
| setUTCMinutes | 世界協定時間の分を設定する |
| setUTCMonth | 世界協定時間の月を設定する(0~11、1月~12月) |
| setUTCSeconds | 世界協定時間の秒を設定する |
| setYear | 年(西暦の下2桁)を設定する |
| toGMTString | グリニッジ(GMT)標準時間を文字列として返す |
| toLocalString | ローカル(地域別)時間を文字列として返す |
| toUTCString | 世界協定(UTC)時間を文字列として返す |
| UTC | 1970年1月1日午前0時から指定した日付までの経過秒数を返す |
INTERNOUS,inc. All rights reserved.