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

JavaScriptのDate.setFullYear()メソッドとは?構文と使い方をサンプルコードで解説

JavaScriptのDateオブジェクトは、言語に組み込みで用意されているデータ型の一つで、日付や時刻を扱うために使われます。Dateオブジェクトは、次のようにnew Date()で生成します。

var dateObj = new Date();

いったんDateオブジェクトを生成すれば、多数のメソッドを使って操作できます。ほとんどのメソッドは、オブジェクトが持つ年・月・日・時・分・秒・ミリ秒の各フィールドに対し、ローカル時刻またはUTC(協定世界時/GMT)のどちらかの時刻基準で値を取得・設定するためのものです。

setFullYear()メソッドとは

DateオブジェクトのsetFullYear()メソッドは、年を表す整数を受け取り、現在設定されている年をその値に置き換える(変更する)メソッドです。月や日の値はそのまま維持され、処理はローカル時刻に基づいて行われます。

構文

setFullYear()メソッドの構文は以下のとおりです。

dateObj.setFullYear(yearValue[, monthValue[, dateValue]]);

パラメータ

  • yearValue(必須):設定したい年を表す整数値。例:2024
  • monthValue(省略可):月を表す0〜11の整数。0が1月、11が12月に対応します。
  • dateValue(省略可):日を表す1〜31の整数。

戻り値は、更新後の日時を1970年1月1日00:00:00(UTC)からの経過時間としてミリ秒単位で表したタイムスタンプです。なお、このメソッドはECMAScript 1で定義されており、すべての主要ブラウザで利用できます。

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

まずは基本となる使い方です。生成済みのDateオブジェクトに対してsetFullYear()を呼び出し、年だけを書き換えています。

<html>
<head>
  <title>JavaScript Example</title>
</head>
<body>
  <script type="text/javascript">
    var dateObj = new Date('September 26, 89 12:4:25');
    document.write("現在の日付: " + dateObj.toUTCString());
    document.write("<br>");
    dateObj.setFullYear(2018);
    document.write("新しい年を設定した後: " + dateObj.toUTCString());
  </script>
</body>
</html>

出力結果

現在の日付: Tue, 26 Sep 1989 06:34:25 GMT
新しい年を設定した後: Wed, 26 Sep 2018 06:34:25 GMT

※表示される時刻は、コードを実行した環境のタイムゾーンによって異なります。

使用例2:年を指定せずに作った日付に年を設定する

Dateオブジェクトの作成時に年を指定していなくても、あとからsetFullYear()を使えば年を設定できます。月と日は作成時の値がそのまま保たれます。

<html>
<head>
  <title>JavaScript Example</title>
</head>
<body>
  <script type="text/javascript">
    var dateObj = new Date('August 23');
    dateObj.setFullYear(2018);
    document.write(dateObj.toDateString());
  </script>
</body>
</html>

出力結果

Thu Aug 23 2018

年を省略して日付文字列から生成した場合、実行時の「今年」が仮の年として設定されます。そこへsetFullYear(2018)とすることで、明示的に2018年へ上書きしています。

使用例3:現在日時に年だけを上書きする

同じように、コンストラクタに引数を一切渡さずに生成したDateオブジェクトでも、このメソッドで年を設定できます。その際、月と日の値は実行時の現在の日付のまま変わりません。

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

出力結果

Thu Oct 18 2018

※これは2018年10月18日に実行した場合の出力です。月・日は実行日のものがそのまま使われ、年だけが2018に置き換わります。

まとめ・注意点

  • setFullYear()は、Dateオブジェクトの「年」だけを変更できるメソッドです。
  • 第2引数・第3引数を指定すれば、月と日も同時に設定できます。
  • 0〜99の数値を渡す場合は注意が必要です。これらの値はそのままの西暦にならず、「1900+指定値」に変換されます。例えばsetFullYear(99)は1999年に設定されます。
  • 処理はローカル時刻に基づいて行われるため、UTCで年を設定したい場合はsetUTCFullYear()を使用してください。
  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」と同様に、日付を表す文字列が返されます。 サンプルコード 以