JavaScriptのDateオブジェクトの基礎
JavaScriptのDateオブジェクトは、日時を扱うための標準的な方法を提供するオブジェクトです。
現在の日付や時刻の取得、過去・未来の日時の操作、特定フォーマットでの日付表示など、さまざまな機能があります。この記事では、Dateオブジェクトの使い方と主要なメソッドを網羅し、サンプルコードとともに解説します。
目次
Dateオブジェクトの作成方法
Dateオブジェクトを生成するには、主に4つの方法があります。
1. 現在の日時を取得
引数なしでDateコンストラクタを呼び出すと、現在の日時を表すDateオブジェクトが作成されます。
let now = new Date();
console.log(now); // 現在の日時が表示されます
2. ミリ秒を指定して日時を生成
1970年1月1日 00:00:00 UTCからの経過ミリ秒数を指定して、Dateオブジェクトを作成できます。
let dateFromMilliseconds = new Date(86400000); // 1日(24時間)後
console.log(dateFromMilliseconds);
3. 日時文字列を指定
文字列形式で日付を指定すると、対応する日時のDateオブジェクトが生成されます。
let dateFromString = new Date("2024-11-04T10:00:00");
console.log(dateFromString);
4. 年月日、時間を個別に指定
年、月、日、時、分、秒、ミリ秒を順に指定して、Dateオブジェクトを生成する方法です。
let specificDate = new Date(2024, 10, 4, 10, 0, 0);
console.log(specificDate);
Dateオブジェクトのメソッド
Dateオブジェクトには、日時の取得や設定を行うための多くのメソッドが用意されています。
年月日を取得するメソッド
- getFullYear:4桁の年を返します。
- getMonth:月を0から11の範囲で返します(0が1月、11が12月)。
- getDate:月内の日にちを返します。
- getDay:曜日を0(日曜日)から6(土曜日)の範囲で返します。
let date = new Date();
console.log(date.getFullYear()); // 年
console.log(date.getMonth()); // 月(0が1月)
console.log(date.getDate()); // 日
console.log(date.getDay()); // 曜日(0が日曜日)
時間を取得するメソッド
- getHours:時(0から23)を返します。
- getMinutes:分(0から59)を返します。
- getSeconds:秒(0から59)を返します。
- getMilliseconds:ミリ秒(0から999)を返します。
let time = new Date();
console.log(time.getHours()); // 時
console.log(time.getMinutes()); // 分
console.log(time.getSeconds()); // 秒
console.log(time.getMilliseconds()); // ミリ秒
タイムゾーンの取得
- getTime:1970年1月1日 00:00:00 UTCからの経過ミリ秒を返します。
- getTimezoneOffset:現地時間とUTCの差(分単位)を返します。
let timezone = new Date();
console.log(timezone.getTime()); // ミリ秒
console.log(timezone.getTimezoneOffset()); // タイムゾーンオフセット(分)
日時を設定するメソッド
Dateオブジェクトの日時を変更するためのメソッドも多く用意されています。
- setFullYear:年を設定します。
- setMonth:月を設定します(0が1月)。
- setDate:日を設定します。
- setHours:時を設定します。
- setMinutes:分を設定します。
- setSeconds:秒を設定します。
- setMilliseconds:ミリ秒を設定します。
let setDateExample = new Date();
setDateExample.setFullYear(2025);
setDateExample.setMonth(11); // 12月
setDateExample.setDate(25);
console.log(setDateExample);
日付の比較
JavaScriptでは、Dateオブジェクト同士を比較することができます。大きい方が後の日時を意味します。
let date1 = new Date("2024-01-01");
let date2 = new Date("2024-12-31");
console.log(date1 < date2); // true(date1がdate2より前)
console.log(date1.getTime() === date2.getTime()); // false(異なる日時)
現在の日時を特定フォーマットで表示
JavaScriptには、日時を特定のフォーマットで表示するためのメソッドがいくつかあります。以下の方法で、Dateオブジェクトの文字列形式をカスタマイズできます。
toLocaleDateString
ローカルの日付形式に基づいて日付を表示します。
let localDate = new Date();
console.log(localDate.toLocaleDateString()); // ローカル形式の日付
toLocaleTimeString
ローカルの時間形式に基づいて時刻を表示します。
let localTime = new Date();
console.log(localTime.toLocaleTimeString()); // ローカル形式の時間
toISOString
ISO 8601形式の文字列に変換します。タイムゾーンはUTCとして表示されます。
let isoString = new Date();
console.log(isoString.toISOString());
日付の加減算
JavaScriptで特定の日数や時間を追加または減算する場合、Dateオブジェクトを直接操作する必要があります。
let today = new Date();
let tomorrow = new Date(today);
tomorrow.setDate(today.getDate() + 1); // 1日後
console.log(tomorrow);
UNIXタイムスタンプの取得と使用
UNIXタイムスタンプは、1970年1月1日 00:00:00 UTCからの経過秒数です。DateオブジェクトはUNIXタイムスタンプの取得や変換にも対応しています。
- Date.now:現在のUNIXタイムスタンプをミリ秒単位で返します。
console.log(Date.now());
Dateのまとめ
JavaScriptのDateオブジェクトは、日付や時刻の取得、設定、フォーマットの変換など、幅広い用途で活用されます。特定の日付を表示する、タイムスタンプを操作する、複数の日時を比較するなど、さまざまなシナリオで役立ちます。