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()を使用してください。
-
JavaScriptのDate.setUTCMonth()メソッドとは?構文と使い方を実例付きで解説
Dateオブジェクトは、JavaScriptに組み込まれているデータ型の一つです。Dateオブジェクトは、次のように new Date() を使って生成します。 Dateオブジェクトを生成すると、多数のメソッドを使ってそのオブジェクトを操作できます。ほとんどのメソッドは、ローカル時間またはUTC(協定世界時/GMT)のいずれかの時刻基準で、年・月・日・時・分・秒・ミリ秒の各フィールドを取得・設定するためのものです。 setUTCMonth()メソッドは、年の月を表す整数を受け取り、UTC(協定世界時)に基づいて現在の日付の「月」の値を置き換えます。月の値は0が1月を表し、以降は11が12月に
-
JavaScriptのDate.@@toPrimitive()関数とは?日付オブジェクトをプリミティブ値に変換する方法
JavaScriptのDate.@@toPrimitive()関数は、Dateオブジェクトをプリミティブ値に変換するために使用されます。このメソッドはSymbol.toPrimitiveプロパティを通じて呼び出され、引数に指定したヒント(hint)に応じて、文字列や数値など適切なプリミティブ値を返します。 ヒントの種類と戻り値 「default」:日付を表す文字列が返されます。 「number」:1970年1月1日00:00:00 UTCからの経過ミリ秒数(タイムスタンプ)が数値で返されます。 「string」:「default」と同様に、日付を表す文字列が返されます。 サンプルコード 以