JavaScript
 Computer >> コンピューター >  >> プログラミング >> JavaScript

【JavaScript】Date.setDate()メソッドの使い方をサンプルコード付きで解説

Dateオブジェクトとは

Dateオブジェクトは、JavaScriptに組み込まれているデータ型のひとつです。次のように new Date() を使って生成します。

Dateオブジェクトを生成すると、数多くのメソッドで日付を操作できるようになります。これらのメソッドの多くは、ローカル時刻またはUTC(協定世界時/グリニッジ標準時)を基準に、年・月・日・時・分・秒・ミリ秒の各フィールドを取得・設定するためのものです。

その中のひとつである setDate() メソッドは、月の日付を表す整数を引数に受け取り、現在の日付をその値に変更(上書き)します。戻り値は、協定世界時1970年1月1日0時0分0秒を起点とした、変更後の日時までの経過ミリ秒数です。

構文

dateObj.setDate(5);

使用例1:既存の日付の「日」を変更する

最初の例では、1989年9月26日のDateオブジェクトを生成し、setDate() で日付を1日に変更しています。

<html>
<head>
    <title>JavaScript Example</title>
</head>
<body>
    <script type="text/javascript">
        var dateObj = new Date('september 26, 89 12:4:25:96');
        document.write("Current date: "+dateObj.toUTCString());
        document.write("<br>");
        dateObj.setDate(1);
        document.write("Date after modification: "+dateObj.toUTCString());
    </script>
</body>
</html>

出力

Current date: Tue, 26 Sep 1989 06:34:25 GMT
Date after modification: Fri, 01 Sep 1989 06:34:25 GMT

使用例2:日を指定せずに生成したオブジェクトに後から日を設定する

Dateオブジェクトの生成時に「日」を指定していなくても、あとから setDate() を使って日を設定することができます。

<html>
<head>
    <title>JavaScript Example</title>
</head>
<body>
    <script type="text/javascript">
        var dateObj = new Date('August, 1989 00:4:00');
        document.write("<br>");
        dateObj.setDate(5)
        document.write(dateObj.toDateString());
    </script>
</body>
</html>

出力

Sat Aug 05 1989

使用例3:現在日時に対して「日」だけを変更する

コンストラクタに何も引数を渡さずに生成した場合でも、同じように setDate() で日を設定できます。このとき、月と年は現在の日付のまま維持され、「日」だけが指定した値に変更されます。

<html>
<head>
    <title>JavaScript Example</title>
</head>
<body>
    <script type="text/javascript">
        var dateObj = new Date();
        dateObj.setDate(2);
        document.write(dateObj.toDateString());
    </script>
</body>
</html>

出力

Tue Oct 02 2018

使用例4:0を指定すると前月の最終日になる

setDate()0 を指定すると、日付は前月の最終日に設定されます。「先月の末日」を取得したいときに役立つ便利なテクニックです。

<html>
<head>
    <title>JavaScript Example</title>
</head>
<body>
    <script type="text/javascript">
        var dateObj = new Date('23, August, 1989 00:4:00');
        document.write("<br>");
        dateObj.setDate(0);
        document.write(dateObj.toDateString());
    </script>
</body>
</html>

出力

Mon Jul 31 1989

まとめ:setDate()を使うときのポイント

  • setDate() は、月の日付(通常は1〜31)を整数で指定して変更するメソッドです。
  • 戻り値は、協定世界時(UTC)1970年1月1日0時0分0秒から変更後の日時までの経過ミリ秒数です。
  • 範囲外の値(0、負の値、月末を超える値など)を指定してもエラーにはならず、月またぎが自動的に計算されます。たとえば8月中に setDate(32) を実行すると、翌月の1日(9月1日)に繰り越されます。
  • なお、本記事のサンプルで使っている document.write() は現在では非推奨とされているため、実際の開発では console.log() やDOM操作による表示をおすすめします。
  1. JavaScriptのDate.setUTCMonth()メソッドとは?構文と使い方を実例付きで解説

    Dateオブジェクトは、JavaScriptに組み込まれているデータ型の一つです。Dateオブジェクトは、次のように new Date() を使って生成します。 Dateオブジェクトを生成すると、多数のメソッドを使ってそのオブジェクトを操作できます。ほとんどのメソッドは、ローカル時間またはUTC(協定世界時/GMT)のいずれかの時刻基準で、年・月・日・時・分・秒・ミリ秒の各フィールドを取得・設定するためのものです。 setUTCMonth()メソッドは、年の月を表す整数を受け取り、UTC(協定世界時)に基づいて現在の日付の「月」の値を置き換えます。月の値は0が1月を表し、以降は11が12月に

  2. JavaScriptのDate.@@toPrimitive()関数とは?日付オブジェクトをプリミティブ値に変換する方法

    JavaScriptのDate.@@toPrimitive()関数は、Dateオブジェクトをプリミティブ値に変換するために使用されます。このメソッドはSymbol.toPrimitiveプロパティを通じて呼び出され、引数に指定したヒント(hint)に応じて、文字列や数値など適切なプリミティブ値を返します。 ヒントの種類と戻り値 「default」:日付を表す文字列が返されます。 「number」:1970年1月1日00:00:00 UTCからの経過ミリ秒数(タイムスタンプ)が数値で返されます。 「string」:「default」と同様に、日付を表す文字列が返されます。 サンプルコード 以