JSの日付の定義は?

JavaScriptにおける日付の定義

JavaScriptにおいて日付は、世界協定時(UTC)の1970年1月1日午前0時0分0秒を起点として、経過したミリ秒数で表されます。これはUNIX時間としても知られており、タイムゾーンに依存しないため、世界中で一意に時間を特定することができます。

日付オブジェクト

JavaScriptで日付を扱う場合は、組み込みオブジェクトであるDateオブジェクトを使用します。Dateオブジェクトは、日付や時刻に関する情報を保持し、様々な操作を提供します。

Dateオブジェクトの作成

Dateオブジェクトは、以下のようにして作成することができます。

<script>
// 現在の日時
const now = new Date();
console.log(now); 

// 指定した日時
const date1 = new Date(2023, 10, 26); // 2023年10月26日
const date2 = new Date(2023, 10, 26, 12, 30, 0); // 2023年10月26日 12時30分0秒
console.log(date1);
console.log(date2);

// ミリ秒を指定
const date3 = new Date(1698326400000); // 2023年10月26日 12時30分0秒 (UTC)
console.log(date3);
</script>

日付情報の取得

Dateオブジェクトから、年、月、日、時、分、秒などの情報を取得することができます。以下に、よく使用されるメソッドをまとめます。

メソッド 説明
getFullYear() 年を取得 (4桁)
getMonth() 月を取得 (0: 1月, 11: 12月)
getDate() 日を取得
getHours() 時を取得 (24時間表記)
getMinutes() 分を取得
getSeconds() 秒を取得
getDay() 曜日を取得 (0: 日曜日, 6: 土曜日)
getTime() 1970年1月1日午前0時0分0秒からの経過ミリ秒数を取得 (タイムスタンプ)
<script>
const date = new Date();

const year = date.getFullYear();
const month = date.getMonth() + 1; // 0 から始まるため +1 する
const day = date.getDate();

console.log(`今日は${year}年${month}月${day}日です。`);
</script>

日付のフォーマット

Dateオブジェクトを直接文字列として出力すると、ISO 8601形式の文字列が返されます。任意の形式で日付を表示したい場合は、toLocaleDateString()toLocaleTimeString()などのメソッド、または日付フォーマットライブラリを使用します。

<script>
const date = new Date();

console.log(date.toLocaleDateString()); // 例: 2023/10/26
console.log(date.toLocaleTimeString()); // 例: 16:20:30

// オプションで言語や地域、表示形式を指定できます
console.log(date.toLocaleDateString('ja-JP', { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' })); // 例: 2023年10月26日木曜日
</script>

参考資料

よくある質問

Q1. JavaScriptで日付計算を行うにはどうすればよいですか?

A1. Dateオブジェクトのメソッドを使用して計算することができます。例えば、2つの日付の差を求める場合は、getTime()メソッドでミリ秒単位のタイムスタンプを取得し、その差を計算します。詳細については、MDNのドキュメントを参照してください。

Q2. タイムゾーンを考慮するにはどうすればよいですか?

A2. Dateオブジェクトは、内部的にはUTCで時間を保持しています。タイムゾーンを考慮するには、toLocaleDateString()toLocaleTimeString()などのメソッドを使用する際に、オプションでタイムゾーンを指定します。または、Moment.jsなどの日付ライブラリを使用することで、タイムゾーン変換を簡単に行うことができます。

Q3. どのような日付フォーマットライブラリがありますか?

A3. Moment.js、date-fns、Luxonなど、多くの日付フォーマットライブラリがあります。これらのライブラリは、日付のフォーマットや計算を簡単に行うための豊富な機能を提供しています。プロジェクトの要件に合わせて適切なライブラリを選択してください。

その他の参考記事:JavaScriptの日付