recursal/MDN huggingface dataset:
Date.prototype.valueOf()
========================

**`valueOf()`** メソッドは、 `Date` オブジェクトのプリミティブ値を返します。

試してみましょう
--------

構文
--


```js
valueOf()
```

### 返値

協定世界時 (UTC) 1970 年 1 月 1 日 00:00:00 から指定された日時までの間のミリ秒単位の数値。

解説
--

`valueOf()` メソッドは、 `Date` オブジェクトのプリミティブ値を数値型で返します。これは、1970 年 1 月 1 日 00:00:00 (UTC) からのミリ秒単位の数値です。

このメソッドは、`Date.prototype.getTime()` メソッドと機能的に同等です。

このメソッドは、JavaScript によって内部的に呼ばれるものであり、コード内で明示的に呼ばれることはありません。

例
-

### valueOf() の使用


```js
const x = new Date(56, 6, 17);
const myVar = x.valueOf(); // myVar に -424713600000 を代入
```

仕様書
---

| Specification |
| --- |
| ECMAScript Language Specification # sec-date.prototype.valueof |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* `Object.prototype.valueOf()`
* `Date.prototype.getTime()`
Date.prototype.getUTCDate()
===========================

**`getUTCDate()`** メソッドは、協定世界時に基づき、指定された日時の月内の日（1 ～ 31）を返します。

試してみましょう
--------

構文
--


```js
getUTCDate()
```

### 返値

 数字です。
 `Date` オブジェクトが有効な日時を表している場合は、指定された日時の曜日を表す 1 から 31 までの整数値（世界標準時による）。
 それ以外の場合は、 `Date` オブジェクトが有効な日時を表していない場合は `NaN` を返します。

例
-

### getUTCDate() の使用

次の例は、現在日時の「日」の部分を変数 `dayOfMonth` に代入します。


```js
const today = new Date();
const dayOfMonth = today.getUTCDate();
```

仕様書
---

| Specification |
| --- |
| ECMAScript Language Specification # sec-date.prototype.getutcdate |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* `Date.prototype.getUTCDate()`
* `Date.prototype.getDay()`
* `Date.prototype.setUTCDate()`
Date.prototype.toDateString()
=============================

**`toDateString()`** メソッドは、 `Date` オブジェクトの日付部分をローカルタイムゾーンで英語で返します。

試してみましょう
--------

構文
--
```

dateObj.toDateString()
```

### 返値

与えられた `Date` オブジェクトの「日付」部を表す文字列を人間が読める英語の表記で返します。

解説
--

`Date` インスタンスは、特定の時点を参照します。 `toDateString()` は日付をローカルタイムゾーンで解釈し、*日付* の部分を英語で整形します。英語の次の書式で空白区切りで返します。

1. 曜日名の最初の 3 文字
2. 月名の最初の 3 文字
3. 2 桁の日、必要であれば左に 0 埋め
4. 4 桁 (以上) の年、必要であれば左に 0 埋め

例 "Thu Jan 01 1970".

* *時刻* の部分を取得したい場合は、 `toTimeString()` を使用してください。
* 日付と時刻の両方を取得したい場合は、 `toString()` を使用してください。
* 日付をローカルタイムゾーンではなく UTC として解釈したい場合は、 `toUTCString()` を使用してください。
* 日付をもっとユーザーが読みやすい形式（例えばローカライズ）で整形したい場合は、 `toLocaleDateString()` を使用してください。
例
-

### toDateString() の基本的な使い方


```js
var d = new Date(1993, 5, 28, 14, 39, 7);

console.log(d.toString()); // logs Mon Jun 28 1993 14:39:07 GMT-0600 (PDT)
console.log(d.toDateString()); // logs Mon Jun 28 1993
```


**メモ:** `Date` の引数として使用する場合、月は 0 から始まります（よって、 0 は 1 月に、 11 は 12 月 に対応します）。

仕様書
---

| Specification |
| --- |
| ECMAScript Language Specification # sec-date.prototype.todatestring |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* `Date.prototype.toLocaleDateString()`
* `Date.prototype.toTimeString()`
* `Date.prototype.toString()`
Date.prototype.setUTCMilliseconds()
===================================

**`setUTCMilliseconds()`** メソッドは、協定世界時に基づき、指定された日時の「ミリ秒」を設定します。

試してみましょう
--------

構文
--


```js
setUTCMilliseconds(millisecondsValue)
```

### 引数

`millisecondsValue`

「ミリ秒」を表す 0 から 999 までの間の整数値。

### 返値

協定世界時 (UTC) 1970 年 1 月 1 日 00:00:00 から更新された日時までの間のミリ秒単位の数値。

解説
--

指定した値が期待される日付の範囲外の場合、それに応じて `setUTCMilliseconds()` が `Date` オブジェクトの日付情報の更新を試みます。例えば、`millisecondsValue` に 1100 を指定した場合、`Date` オブジェクトに格納された秒の数値に 1 が加算され、ミリ秒に 100 が使用されます。

例
-

### setUTCMilliseconds() の使用


```js
const theBigDay = new Date();
theBigDay.setUTCMilliseconds(500);
```

仕様書
---

| Specification |
| --- |
| ECMAScript Language Specification # sec-date.prototype.setutcmilliseconds |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* `Date.prototype.getUTCMilliseconds()`
* `Date.prototype.setMilliseconds()`
Date.prototype.getDate()
========================

**`getDate()`** メソッドは、地方時に基づき、指定された日付の「日」を返します。

試してみましょう
--------

構文
--


```js
getDate()
```

### 返値

1 から 31 までの間の整数値。地方時に基づき、指定された日付の「日」を表します。

例
-

### getDate() の使用

以下の 2 行目の文は、`Date` オブジェクトである `xmas95` の値に基づき、変数 `day` に 25 という値を代入します。


```js
const xmas95 = new Date("December 25, 1995 23:15:30");
const day = xmas95.getDate();

console.log(day); // 25
```

仕様書
---

| Specification |
| --- |
| ECMAScript Language Specification # sec-date.prototype.getdate |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* `Date.prototype.getUTCDate()`
* `Date.prototype.getUTCDay()`
* `Date.prototype.setDate()`
Date.prototype.getUTCHours()
============================

**`getUTCHours()`** メソッドは、協定世界時に基づき、指定された日時の「時」を返します。

試してみましょう
--------

構文
--


```js
getUTCHours()
```

### 返値

 数値です。
 `Date` オブジェクトが有効な日時を表している場合、指定された日時の協定世界時での「時」を表す、0 から 23 までの整数を指定します。
 それ以外の場合は、`Date` オブジェクトが有効な日時を表していなければ `NaN` が返されます。

例
-

### getUTCHours() の使用

次の例は、現在時刻の「時」の部分を変数 `hours` に代入します。


```js
const today = new Date();
const hours = today.getUTCHours();
```

仕様書
---

| Specification |
| --- |
| ECMAScript Language Specification # sec-date.prototype.getutchours |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* `Date.prototype.getHours()`
* `Date.prototype.setUTCHours()`
Date.prototype.setMinutes()
===========================

**`setMinutes()`** メソッドは、地方時に基づき、指定された日時の「分」を設定します。

試してみましょう
--------

構文
--


```js
setMinutes(minutesValue)
setMinutes(minutesValue, secondsValue)
setMinutes(minutesValue, secondsValue, msValue)
```

### 引数

`minutesValue`

「分」を表す 0 から 59 までの間の整数値。

`secondsValue`

任意。「秒」を表す 0 から 59 までの間の整数値。`secondsValue` 引数を指定した場合、`minutesValue` も指定しなければなりません。

`msValue`

任意。ミリ秒を表す 0 から 999 までの間の整数値。`msValue` 引数を指定した場合、`minutesValue` と `secondsValue` も指定しなければなりません。

### 返値

協定世界時 (UTC) 1970 年 1 月 1 日 00:00:00 から更新された日時までの間のミリ秒単位の数値。

解説
--

`secondsValue` および `msValue` 引数を指定しない場合、`getSeconds()` と `getMilliseconds()` メソッドから返される値が使われます。

指定した値が期待される日時の範囲外の場合、それに応じて `setMinutes()` が `Date` オブジェクトの日付情報の更新を試みます。例えば、`secondsValue` に 100 を指定した場合、分に 1 が加算 (`minutesValue + 1`) され、秒が 40 になります。

例
-

### setMinutes() の使用


```js
const theBigDay = new Date();
theBigDay.setMinutes(45);
```

仕様書
---

| Specification |
| --- |
| ECMAScript Language Specification # sec-date.prototype.setminutes |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* `Date.prototype.getMinutes()`
* `Date.prototype.setUTCMinutes()`
Date.prototype.setUTCFullYear()
===============================

**`setUTCFullYear()`** メソッドは、協定世界時に基づき、指定された日付の年を設定します。

試してみましょう
--------

構文
--


```js
setUTCFullYear(yearValue)
setUTCFullYear(yearValue, monthValue)
setUTCFullYear(yearValue, monthValue, dayValue)
```

### 引数

`yearValue`

「年」の数字を指定する整数値。例えば、1995。

`monthValue`

任意。1 月から 12 月を表す 0 から 11 までの間の整数値。

`dayValue`

任意。「日」を表す 1 から 31 までの間の整数値。`dayValue` 引数を指定した場合、`monthValue` も指定しなければなりません。

### 返値

協定世界時 (UTC) 1970 年 1 月 1 日 00:00:00 から更新された日時までの間のミリ秒単位の数値。

解説
--

`monthValue` 引数と `dayValue` 引数を指定しない場合、`getUTCMonth()` メソッドと `getUTCDate()` メソッドから返される値が使われます。

指定した値が期待される日付の範囲外の場合、それに応じて `setUTCFullYear()` が他の引数と `Date` オブジェクトの日付情報の更新を試みます。例えば、`monthValue` に 15 を指定した場合、年に 1 が加算 (`yearValue + 1`) され、月が 3 になります。

例
-

### setUTCFullYear() の使用


```js
const theBigDay = new Date();
theBigDay.setUTCFullYear(1997);
```

仕様書
---

| Specification |
| --- |
| ECMAScript Language Specification # sec-date.prototype.setutcfullyear |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* `Date.prototype.getUTCFullYear()`
* `Date.prototype.setFullYear()`
Date.prototype.getDay()
=======================

**`getDay()`** メソッドは、地方時に基づき、指定された日付の曜日を返します。 0 は日曜日を表します。「日」を取得する方法は `Date.prototype.getDate()` をご覧ください。

試してみましょう
--------

構文
--


```js
getDay()
```

### 返値

整数値で、 0 から 6 までの値を取り、地方時に基づいて指定された日付の曜日に対応し、 0 は日曜日、 1 は月曜日、 2 は火曜日のようになります。

例
-

### getDay の使用

以下の 2 行目の文は、 `Date` オブジェクトである `xmas95` の値に基づき、`weekday` に 1 という値を代入します。1995 年 12 月 25 日は月曜日です。


```js
const xmas95 = new Date("December 25, 1995 23:15:30");
const weekday = xmas95.getDay();

console.log(weekday); // 1
```


**メモ:** 必要であれば、曜日の完全な名前 (例えば "`Monday`") は `Intl.DateTimeFormat` に `options` 引数を設定することで取得することができます。このメソッドを使用すれば、国際化がより簡単になります。


```js
const options = { weekday: "long" };
console.log(new Intl.DateTimeFormat("en-US", options).format(Xmas95));
// Monday
console.log(new Intl.DateTimeFormat("de-DE", options).format(Xmas95));
// Montag
```


仕様書
---

| Specification |
| --- |
| ECMAScript Language Specification # sec-date.prototype.getday |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* `Date.prototype.getUTCDate()`
* `Date.prototype.getUTCDay()`
* `Date.prototype.setDate()`
Date.prototype.getUTCMilliseconds()
===================================

**`getUTCMilliseconds()`** メソッドは、協定世界時に基づき、指定された日時の「ミリ秒」を返します。

試してみましょう
--------

構文
--


```js
getUTCMilliseconds()
```

### 返値

 数値です。
 もし `Date` オブジェクトが有効な日時を表している場合には、指定された `Date` オブジェクトの世界時によるミリ秒単位を表す 0 から 999 までの整数値です。
 それ以外の場合は、`Date` オブジェクトが有効な日時を表していなければ `NaN` が返されます。

Unix 元期の時刻と混同しないでください。 1970/01/01 からの経過ミリ秒を取得するには、 `getTime()` メソッドを使用してください。

例
-

### getUTCMilliseconds() の使用

次の例は、現在時刻の「ミリ秒」部を変数 `milliseconds` に代入します。


```js
const today = new Date();
const milliseconds = today.getUTCMilliseconds();
```

仕様書
---

| Specification |
| --- |
| ECMAScript Language Specification # sec-date.prototype.getutcmilliseconds |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* `Date.prototype.getMilliseconds()`
* `Date.prototype.setUTCMilliseconds()`
Date.prototype.getUTCMinutes()
==============================

**`getUTCMinutes()`** メソッドは、協定世界時に基づき、指定された日時の「分」を返します。

試してみましょう
--------

構文
--


```js
getUTCMinutes()
```

### 返値

 数値です。
 もし `Date` オブジェクトが有効な日時を表している場合は、0 から 59 までの整数で、指定された日時の世界時での分の値を表します。
 それ以外の場合は、`Date` オブジェクトが有効な日時を表していなければ `NaN` が返されます。

例
-

### getUTCMinutes() の使用

次の例は、現在時刻の「分」部を変数 `minutes` に代入します。


```js
const today = new Date();
const minutes = today.getUTCMinutes();
```

仕様書
---

| Specification |
| --- |
| ECMAScript Language Specification # sec-date.prototype.getutcminutes |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* `Date.prototype.getMinutes()`
* `Date.prototype.setUTCMinutes()`
Date.prototype.getUTCDay()
==========================

**`getUTCDay()`** メソッドは、協定世界時に基づき、指定された日時の「曜日」を返します。0 は日曜日を表します。

試してみましょう
--------

構文
--


```js
getUTCDay()
```

### 返値

 数値です。
 `Date` オブジェクトが有効な日時を表している場合、世界時で指定された日時の曜日を表した整数値（日曜日は 0、月曜日は 1、火曜日は 2、...）です。
 それ以外の場合は、`Date` オブジェクトが有効な日時を表していなければ `NaN` が返されます。

例
-

### getUTCDay() の使用

次の例は、現在日時の曜日の部分を変数 `weekday` に代入します。


```js
const today = new Date();
const weekday = today.getUTCDay();
```

仕様書
---

| Specification |
| --- |
| ECMAScript Language Specification # sec-date.prototype.getutcday |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* `Date.prototype.getUTCDate()`
* `Date.prototype.getDay()`
* `Date.prototype.setUTCDate()`
Date.prototype.setFullYear()
============================

**`setFullYear()`** メソッドは、地方時に基づき、指定された日付の「年」を設定します。新しいタイムスタンプを返します。

試してみましょう
--------

構文
--


```js
setFullYear(yearValue)
setFullYear(yearValue, monthValue)
setFullYear(yearValue, monthValue, dateValue)
```

### 引数

`yearValue`

「年」の数字を指定する整数値。例えば、1995。

`monthValue`

任意。1 月から 12 月を表す 0 から 11 までの間の整数値。

`dateValue`

「日」を表す 1 から 31 までの間の整数値。`dateValue` 引数を指定した場合、`monthValue` も指定しなければなりません。

### 返値

協定世界時 (UTC) 1970 年 1 月 1 日 00:00:00 から更新された日付までの間のミリ秒単位の数値。

解説
--

`monthValue` 引数と `dateValue` 引数を指定しない場合、 `getMonth()` メソッドと `getDate()` メソッドから返される値が使われます。

指定した値が期待される日付の範囲外の場合、それに応じて `setFullYear()` が他の引数と `Date` オブジェクトの日付情報の更新を試みます。例えば、`monthValue` に 15 を指定した場合、年に 1 が加算 (`yearValue + 1`) され、月が 3 になります。

例
-

### setFullYear() の使用


```js
const theBigDay = new Date();
theBigDay.setFullYear(1997);
```

仕様書
---

| Specification |
| --- |
| ECMAScript Language Specification # sec-date.prototype.setfullyear |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* `Date.prototype.getUTCFullYear()`
* `Date.prototype.setUTCFullYear()`
* `Date.prototype.setYear()`
Date.prototype.getUTCMonth()
============================

**`getUTCMonth()`** メソッドは、協定世界時に基づき、指定された日付の「月」を表す 0 を基点とした値（すなわち 0 が年の最初の月を示す）を返します。

試してみましょう
--------

構文
--


```js
getUTCMonth()
```

### 返値

 数値です。`Date` オブジェクトが有効な日時を表している場合、0 から 11 までの整数値で、指定された日時の月が世界時で何月になるかに対応します。0 は 1 月、1 は 2 月、2 は 3 月、といった具合になります。
 数値です。それ以外の場合は、`Date` オブジェクトが有効な日時を表していなければ `NaN` が返されます。

例
-

### getUTCMonth() の使用

次の例は、現在日時の「月」の部分を変数 `month` に代入します。


```js
const today = new Date();
const month = today.getUTCMonth();
```

仕様書
---

| Specification |
| --- |
| ECMAScript Language Specification # sec-date.prototype.getutcmonth |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* `Date.prototype.getMonth()`
* `Date.prototype.setUTCMonth()`
Date.prototype.toString()
=========================

**`toString()`** メソッドは、指定した `Date` オブジェクトをローカルタイムゾーンで解釈したものを表す文字列を返します。

試してみましょう
--------

構文
--


```js
toString()
```

### 返値

与えられた日付を表す文字列。

解説
--

`Date` オブジェクトは、 `Object` の `toString()` メソッドを上書きします。`Date.prototype.toString()` は、日付と時刻の両方を含む、ローカルタイムゾーンで解釈される Date の文字列表現を返します。これは `toDateString()` と `toTimeString()` で指定した文字列表現を結合し、間に空白を追加したものです。

例: "Thu Jan 01 1970 04:42:04 GMT+0000 (Coordinated Universal Time)"

`toString()` メソッドは、`const today = 'Today is ' + new Date()` のように、日付を文字列に変換する際に自動的に呼び出されます。

`Date.prototype.toString()` は `Date` インスタンスに対して呼び出されなければなりません。もし `this` 値が `Date.prototype` を継承していない場合、 `TypeError` が発生します。

* *日付* の部分を取得したい場合は、 `toDateString()` を使用してください。
* *時刻* の部分を取得したい場合は、 `toTimeString()` を使用してください。
* 日付をローカルタイムゾーンではなく UTC として解釈したい場合は、 `toUTCString()` を使用してください。
* 日付をもっとユーザーが読みやすい形式（例えばローカライズ）で整形したい場合は、 `toLocaleString()` を使用してください。
例
-

### toString() の使用


```js
const x = new Date();
console.log(x.toString()); // Mon Sep 08 1998 14:36:22 GMT-0700 (PDT)
```

仕様書
---

| Specification |
| --- |
| ECMAScript Language Specification # sec-date.prototype.tostring |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* `Object.prototype.toString()`
* `Date.prototype.toDateString()`
* `Date.prototype.toLocaleString()`
* `Date.prototype.toTimeString()`
Date.prototype.toJSON()
=======================

**`toJSON()`** メソッドは、`Date` オブジェクトの文字列表現を返します。

試してみましょう
--------

構文
--


```js
toJSON()
```

### 返値

与えられた日付を表す文字列。

解説
--

`Date` インスタンスは、特定の時点を参照します。`toJSON()` の呼び出しは、`Date` オブジェクトの値を表す文字列 (`toISOString()` を使用) を返します。このメソッドは、既定で、 `Date` オブジェクトを JSON シリアライズ中に有益にシリアライズし、その後、 `Date()` コンストラクター または `Date.parse()` の更新版としての `JSON.parse()` を使用してデシリアライズできるようにすることが一般に意図されています。

例
-

### toJSON() を使う


```js
const jsonDate = new Date().toJSON();
const backToDate = new Date(jsonDate);

console.log(jsonDate); // 2015-10-26T07:46:36.611Z
```

### シリアライズの往復

日付文字列を含む JSON を解釈する場合、 `Date.parse()` を使用して、元の日付オブジェクトに復活させることができます。


```js
const fileData = {
  author: "John",
  title: "Date.prototype.toJSON()",
  createdAt: new Date(2019, 3, 15),
  updatedAt: new Date(2020, 6, 26),
};
const response = JSON.stringify(fileData);

// ネットワーク経由での送信をイメージ

const data = JSON.parse(response, (key, value) => {
  if (key === "createdAt" || key === "updatedAt") {
    return Date.parse(value);
  }
  return value;
});

console.log(data);
```

仕様書
---

| Specification |
| --- |
| ECMAScript Language Specification # sec-date.prototype.tojson |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* `Date.prototype.toLocaleDateString()`
* `Date.prototype.toTimeString()`
* `Date.prototype.toUTCString()`
Date.prototype.setUTCDate()
===========================

**`setUTCDate()`** メソッドは、指定された `Date` インスタンスの「日」を UTC 時刻に基づいて変更します。

ローカル時間に基づいて指定された `Date` インスタンスの「日」を変更するには、 `setDate()` メソッドを使用してください。

試してみましょう
--------

構文
--


```js
setUTCDate(dayValue)
```

### 引数

`dayValue`

任意。「日」を表す 1 から 31 までの間の整数値。

### 返値

協定世界時 (UTC) 1970 年 1 月 1 日 00:00:00 から更新された日時までの間のミリ秒単位の数値。

解説
--

もし `dayValue` がその月の日付値の範囲外だった場合、 `setDate()` は `Date` オブジェクトをそれに応じて更新します。

例えば、 `dayValue` に 0 が指定された場合、日付は前月の最終日に設定されます。もし `dayValue` に 40 を使用した場合、`Date` オブジェクトに格納されている月が 6 月であれば、日は 10 に変更され、月は 7 月に増加します。

もし `dayValue` に負の数が指定された場合、日付は前月の最終日から逆算して設定されます。 -1 の場合、日付は前月の最終日の 1 日前に設定されます。

例
-

### setUTCDate() の使用


```js
const theBigDay = new Date();
theBigDay.setUTCDate(20);
```

仕様書
---

| Specification |
| --- |
| ECMAScript Language Specification # sec-date.prototype.setutcdate |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* `Date.prototype.getUTCDate()`
* `Date.prototype.setDate()`
Date.prototype.setHours()
=========================

**`setHours()`** メソッドは、地方時に基づき、指定された日付の「時」を設定し、協定世界時 (UTC) 1970 年 1 月 1 日 00:00:00 から更新された `Date` インスタンスが表す時刻までの間のミリ秒単位の数値を返します。

試してみましょう
--------

構文
--


```js
setHours(hoursValue)
setHours(hoursValue, minutesValue)
setHours(hoursValue, minutesValue, secondsValue)
setHours(hoursValue, minutesValue, secondsValue, msValue)
```

### 引数

`hoursValue`

理想的には、「時」を表す 0 から 23 までの間の整数値です。23 よりも大きな値が指定された場合は、日時は追加の時間数だけ増加します。

`minutesValue`

任意。理想的には、「分」を表す 0 から 59 までの間の整数値です。59 よりも大きな値が指定された場合は、日時は追加の分数だけ増加します。

`secondsValue`

任意。理想的には、「秒」を表す 0 から 59 までの間の整数値です。59 より大きな値が指定された場合は、日時は追加の秒数だけ増加します。`secondsValue` 引数を指定した場合は、`minutesValue` も指定しなければなりません。

`msValue`

任意。理想的には、ミリ秒を表す 0 から 999 までの間の整数値です。999 よりも大きな値が指定された場合は、日時は追加のミリ秒数だけ増加します。`msValue` 引数を指定した場合、`minutesValue` と `secondsValue` も指定しなければなりません。

### 返値

協定世界時 (UTC) 1970 年 1 月 1 日 00:00:00 から更新された日時までの間のミリ秒単位の数値。

解説
--

`minutesValue`, `secondsValue` および `msValue` 引数を指定しなかった場合、`getMinutes()` と `getSeconds()`、`getMilliseconds()` メソッドから返される値が使われます。

指定した値が期待される日付の範囲外の場合、それに応じて `setHours()` が他の引数と `Date` オブジェクトの日付情報の更新を試みます。例えば、`secondsValue` に 100 を指定した場合、分に 1 加算 (`minutesValue + 1`) され、秒が 40 になります。

例
-

### setHours() の使用


```js
const theBigDay = new Date();
theBigDay.setHours(7);
```

仕様書
---

| Specification |
| --- |
| ECMAScript Language Specification # sec-date.prototype.sethours |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* `Date.prototype.getHours()`
* `Date.prototype.setUTCHours()`
Date.prototype[@@toPrimitive]
=============================

**`[@@toPrimitive]()`** メソッドは、 `Date` オブジェクトをプリミティブ値に変換します。

試してみましょう
--------

構文
--


```js
Date()[Symbol.toPrimitive](hint)
```

### 返値

与えられた `Date` オブジェクトのプリミティブ値です。引数に応じて、このメソッドは文字列と数値のどちらかを返します。

解説
--

`Date` オブジェクトの `[@@toPrimitive]()` メソッドは、プリミティブ値を返します。これは、数値型または文字列型です。

`hint` が `string` または `default` の場合、`[@@toPrimitive]()` は `toString` メソッドを呼び出そうとします。 `toString` メソッドが存在しなければ、 `valueOf` メソッドを呼び出そうとします。 `valueOf` メソッドも存在しなければ、 `[@@toPrimitive]()` は `TypeError` を発生させます。

`hint` が `number` の場合、 `[@@toPrimitive]()` は初めに `valueOf` メソッドを呼び出そうとします。これが失敗した場合は、 `toString` メソッドを呼び出します。

JavaScript は、 `[@@toPrimitive]()` メソッドを呼び出してオブジェクトをプリミティブ値に変換します。 `[@@toPrimitive]()` メソッドを自分で呼び出す必要はほとんどありません。 JavaScript は、プリミティブ値が期待されるオブジェクトに遭遇した時、自動的にこれを呼び出します。

例
-

### 日付プリミティブの返却


```js
const testDate = new Date(1590757517834);
// "Date Fri May 29 2020 14:05:17 GMT+0100 (British Summer Time)"

testDate[Symbol.toPrimitive]("string");
// "Date Fri May 29 2020 14:05:17 GMT+0100 (British Summer Time)" を返す

testDate[Symbol.toPrimitive]("number");
// "1590757517834" を返す

testDate[Symbol.toPrimitive]("default");
// "Date Fri May 29 2020 14:05:17 GMT+0100 (British Summer Time)" を返す
```

仕様書
---

| Specification |
| --- |
| ECMAScript Language Specification # sec-date.prototype-@@toprimitive |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* `Symbol.toPrimitive`
Date.prototype.setUTCSeconds()
==============================

**`setUTCSeconds()`** メソッドは、協定世界時に基づき、指定された日時の「秒」を設定します。

試してみましょう
--------

構文
--


```js
setUTCSeconds(secondsValue)
setUTCSeconds(secondsValue, msValue)
```

### 引数

`secondsValue`

「秒」を表す 0 から 59 までの間の整数値。

`msValue`

任意。ミリ秒を表す 0 から 999 までの間の整数値。

### 返値

協定世界時 (UTC) 1970 年 1 月 1 日 00:00:00 から更新された日時までの間のミリ秒単位の数値。

解説
--

`msValue` 引数を指定しない場合、`getUTCMilliseconds()` メソッドから返される値が使われます。

指定した値が期待される日時の範囲外の場合、それに応じて `setUTCSeconds()` が `Date` オブジェクトの日付情報の更新を試みます。例えば、`secondsValue` に 100 を指定した場合、分に 1 加算され、秒が 40 になります。

例
-

### setUTCSeconds() の使用


```js
const theBigDay = new Date();
theBigDay.setUTCSeconds(20);
```

仕様書
---

| Specification |
| --- |
| ECMAScript Language Specification # sec-date.prototype.setutcseconds |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* `Date.prototype.getUTCSeconds()`
* `Date.prototype.setSeconds()`
Date.prototype.setDate()
========================

**`setDate()`** メソッドは、現在設定されている月から始まる `Date` オブジェクトの「日」を設定します。

指定された日時の月日を UTC 時間に基づいて変更するには、代わりに `setUTCDate()` メソッドを使用してください。

試してみましょう
--------

構文
--


```js
setDate(dayValue)
```

### 引数

`dayValue`

「日」を表す整数の値です。

### 返値

協定世界時 (UTC) 1970 年 1 月 1 日 00:00:00 から与えられた日付までの間のミリ秒単位の数値（`Date` オブジェクトも適切に変更されます）。

解説
--

`dayValue` がその月の日付の範囲外の値の場合、それに応じて `setDate()` が `Date` オブジェクトを更新します。

例えば、 `dayValue` に 0 が指定された場合、日付は前の月の最終日に設定されます。もし `dayValue` に 40 を使用した場合、 `Date` オブジェクトに格納された月が 6 月であれば、日は 10 に変更され、月は 7 月に増加します。

もし `dayValue` に負の数が指定された場合、前月の最終日から逆算して日付が設定されます。 -1 を指定すると、前月の最終日の 1 日前に日付が設定されます。

例
-

### setDate() の使用


```js
const theBigDay = new Date(1962, 6, 7, 12); // noon of 1962-07-07 (7th of July 1962, month is 0-indexed)
const theBigDay2 = new Date(theBigDay).setDate(24); // 1962-07-24 (24th of July 1962)
const theBigDay3 = new Date(theBigDay).setDate(32); // 1962-08-01 (1st of August 1962)
const theBigDay4 = new Date(theBigDay).setDate(22); // 1962-07-22 (22nd of July 1962)
const theBigDay5 = new Date(theBigDay).setDate(0); // 1962-06-30 (30th of June 1962)
const theBigDay6 = new Date(theBigDay).setDate(98); // 1962-10-06 (6th of October 1962)
const theBigDay7 = new Date(theBigDay).setDate(-50); // 1962-05-11 (11th of May 1962)
```

仕様書
---

| Specification |
| --- |
| ECMAScript Language Specification # sec-date.prototype.setdate |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* `Date()`
* `Date.prototype.getDate()`
* `Date.prototype.setUTCDate()`