JavaScriptで現在の日付を取得するには?

JavaScriptで現在の日付を取得する方法

JavaScriptで現在の日付を取得する方法

JavaScriptで現在の日時を扱うことは、ウェブ開発において非常に一般的なタスクです。例えば、動的に更新される時計、イベントのタイムスタンプ、ユーザーのアクティビティの追跡などに利用されます。この記事では、JavaScriptで現在の日付を取得する方法について、詳細に解説していきます。

Dateオブジェクト

JavaScriptで日付と時刻を扱うには、組み込みオブジェクトであるDateオブジェクトを使用します。Dateオブジェクトは、年、月、日、時、分、秒、ミリ秒といった情報を保持し、様々なメソッドを提供することで、日付と時刻の操作を容易にします。

現在の日付の取得

現在の日付を取得するには、new Date()コンストラクタを使用します。これにより、現在の瞬間を表現する新しいDateオブジェクトが作成されます。


<script>
  const now = new Date();
  console.log(now); // 例: Tue Aug 29 2023 10:00:00 GMT+0900 (日本標準時)
</script>

上記コードを実行すると、コンソールに現在の時刻を表すDateオブジェクトが出力されます。

日付と時刻の個別取得

Dateオブジェクトから、年、月、日、時、分、秒などの個別の情報を取得するには、以下のようなメソッドを使用します。

メソッド 説明
getFullYear() 年を4桁の数値で返す
getMonth() 月を0から11の数値で返す(0が1月、11が12月)
getDate() 日を1から31の数値で返す
getHours() 時を0から23の数値で返す
getMinutes() 分を0から59の数値で返す
getSeconds() 秒を0から59の数値で返す
getMilliseconds() ミリ秒を0から999の数値で返す
getDay() 曜日を0から6の数値で返す(0が日曜日、6が土曜日)

<script>
  const now = new Date();

  const year = now.getFullYear();
  const month = now.getMonth() + 1; // getMonth()は0から始まるため、1を加算
  const date = now.getDate();
  const hours = now.getHours();
  const minutes = now.getMinutes();
  const seconds = now.getSeconds();

  console.log(`${year}年${month}月${date}日 ${hours}時${minutes}分${seconds}秒`);
</script>

日付のフォーマット

Dateオブジェクトを直接表示すると、人間が読みやすい形式とは言えません。そのため、日付を表示する際には、任意のフォーマットに整形する必要があります。以下は、日付を「YYYY年MM月DD日」の形式に整形する例です。


<script>
  function formatDate(date) {
    const year = date.getFullYear();
    const month = ("0" + (date.getMonth() + 1)).slice(-2); // 0埋め
    const day = ("0" + date.getDate()).slice(-2); // 0埋め

    return `${year}年${month}月${day}日`;
  }

  const now = new Date();
  const formattedDate = formatDate(now);

  console.log(formattedDate); // 例: 2023年08月29日
</script>

参考資料

よくある質問

Q1. getMonth()が0から始まるのはなぜですか?

A1. これは、JavaScriptがJavaの慣習を継承しているためです。Javaでは、配列のインデックスが0から始まるため、月の表現も0から始まります。

Q2. 日付を特定のフォーマットに整形するにはどうすればよいですか?

A2. Dateオブジェクトには、日付を特定のフォーマットに整形するためのメソッドが用意されていません。そのため、getFullYear()getMonth()getDate()などのメソッドを使用して個々の値を取得し、文字列として結合する必要があります。必要に応じて、slice()メソッドやテンプレートリテラルを用いて、0埋めや任意の区切り文字を追加できます。

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

A3. Dateオブジェクトは、デフォルトではシステムのローカルタイムゾーンを使用します。タイムゾーンを明示的に指定するには、toLocaleString()メソッドを使用します。このメソッドは、指定されたロケールとオプションの書式設定オブジェクトに基づいて、日付と時刻を書式設定した文字列を返します。

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