JavaScriptで日付を取得・操作する方法

JavaScriptで日付や時刻を扱う場合、Dateオブジェクトが非常に便利です。この記事では、その使用方法をいくつかのセクションに分けて解説します。

現在の日付と時刻を取得する

JavaScriptで現在の日付と時刻を取得する最もシンプルな方法は、new Date()を使うことです。

const now = new Date();
console.log(now);

これによりコンソールに現在の日付と時刻が出力されます。

特定の日付を設定する

Dateオブジェクトを使用して特定の日付を設定することも可能です。これは文字列、数値、または他のDateオブジェクトを引数に取ることができます。

const specificDate = new Date('2023-08-17T12:00:00');
console.log(specificDate);

日付の各コンポーネントを取得する

Dateオブジェクトから年、月、日、時間、分、秒、ミリ秒を個別に取得するメソッドも用意されています。

const now = new Date();

const year = now.getFullYear();
const month = now.getMonth();
const date = now.getDate();
const day = now.getDay();
const hours = now.getHours();
const minutes = now.getMinutes();
const seconds = now.getSeconds();
const milliseconds = now.getMilliseconds();

console.log(year, month, date, day, hours, minutes, seconds, milliseconds);

日付のコンポーネントを設定する

Dateオブジェクトは、日付の各コンポーネントを個別に設定するためのメソッドも提供しています。

const now = new Date();

now.setFullYear(2024);
now.setMonth(11);
now.setDate(25);
now.setHours(12);
now.setMinutes(0);
now.setSeconds(0);
now.setMilliseconds(0);

console.log(now);

タイムスタンプを取得・設定する

JavaScriptでは、1970年1月1日00:00:00 UTCからの経過ミリ秒をタイムスタンプとして取得できます。

const now = new Date();
const timestamp = now.getTime();

console.log(timestamp);

タイムスタンプからDateオブジェクトを生成することも可能です。

const timestamp = 1689902400000;
const dateFromTimestamp = new Date(timestamp);

console.log(dateFromTimestamp);

日付をフォーマットする

日付を人間が読める形式の文字列に変換するために、toLocaleDateStringやtoLocaleTimeStringメソッドを使うことができます。

const now = new Date();
const formattedDate = now.toLocaleDateString('ja-JP');
const formattedTime = now.toLocaleTimeString('ja-JP');

console.log(formattedDate);
console.log(formattedTime);

サンプルコード シンプルなカウントダウンタイマー

この実例では、HTMLで表示用の要素を作成し、JavaScriptでカウントダウンのロジックを実装しています。

これを実行すると、指定した未来の日付までの残り時間を、ウェブページ上に日、時間、分、秒の形式でリアルタイムで表示するカウントダウンタイマーができます。

このシンプルなカウントダウンタイマーの例を参考に、より複雑な日付や時間に関する機能をJavaScriptで実装する際のヒントにしてください!

HTML

<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <title>カウントダウンタイマー</title>
</head>
<body>
    <h1>カウントダウンタイマー</h1>
    <div id="countdown">
        <span id="days"></span>日
        <span id="hours"></span>時間
        <span id="minutes"></span>分
        <span id="seconds"></span>秒
    </div>
    <script src="countdown.js"></script>
</body>
</html>

カウントダウンの日数、時間、分、秒を表示するためのspan要素を作成しています。

JavaScript (countdown.js)

// 目標の日付を設定 (例: 2023年12月31日 23:59:59)
const targetDate = new Date('2023-12-31T23:59:59');
const daysElement = document.getElementById('days');
const hoursElement = document.getElementById('hours');
const minutesElement = document.getElementById('minutes');
const secondsElement = document.getElementById('seconds');

function updateCountdown() {
    // 現在の日付と時刻を取得
    const now = new Date();
    
    // 目標の日付までの残り時間(ミリ秒)を計算
    const remainingTime = targetDate - now;
    
    // 残り時間を日、時間、分、秒に変換
    const days = Math.floor(remainingTime / (1000 * 60 * 60 * 24));
    const hours = Math.floor((remainingTime % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
    const minutes = Math.floor((remainingTime % (1000 * 60 * 60)) / (1000 * 60));
    const seconds = Math.floor((remainingTime % (1000 * 60)) / 1000);
    
    // 各要素に値をセット
    daysElement.textContent = days;
    hoursElement.textContent = hours;
    minutesElement.textContent = minutes;
    secondsElement.textContent = seconds;
}

// 1秒ごとにupdateCountdown関数を実行
setInterval(updateCountdown, 1000);
  • targetDateにカウントダウンする目標の日時を設定します。この例では、2023年12月31日 23:59:59に設定しています。
  • updateCountdown関数は、現在の時間から目標の時間までの差(残り時間)を計算し、それを日、時間、分、秒に分解して、HTMLに表示します。
  • setInterval(updateCountdown, 1000)は、updateCountdown関数を1秒(1000ミリ秒)ごとに実行し、カウントダウンを更新します。

まとめ

JavaScriptのDateオブジェクトは、日付と時刻に関する多くのタスクを簡単に処理できる強力なツールです。これを使えば、現在の日付の取得、特定の日付の設定、日付の成分の取得・設定、そして人間が読める形式での日付の出力が可能になります。

これからJavaScriptで日付を扱う際には、このDateオブジェクトをぜひ活用してみてください!