recursal/MDN huggingface dataset:
Intl.NumberFormat
=================

**`Intl.NumberFormat`** 对象能使数字在特定的语言环境下格式化。

尝试一下
----

构造函数
----

`Intl.NumberFormat()` (en-US)

创建一个新的 `NumberFormat` 对象。

静态方法
----

`Intl.NumberFormat.supportedLocalesOf()` (en-US)

返回一个数组，其包含着那些被提供的受支持的区域（locale），而运行时的默认的区域不会出现在该数组。

实例方法
----

`Intl.NumberFormat.prototype.format()`

getter 函数，根据此 `Intl.NumberFormat` 对象的区域设置和格式化选项格式化数字。

`Intl.NumberFormat.prototype.formatToParts()` (en-US)

返回一个对象数组，其中表示的是数字字符串的各个部分，可以用于自定义本地化格式。

`Intl.NumberFormat.prototype.formatRange()` (en-US)

getter 函数，根据调用该方法的 `Intl.NumberFormat` 对象的区域设置和格式化选项格式化一个数字的范围。

`Intl.NumberFormat.prototype.formatRangeToParts()` (en-US)

返回一个对象数组，其中表示的是数字范围的字符串的各个部分，可以用于自定义本地化格式。

`Intl.NumberFormat.prototype.resolvedOptions()` (en-US)

返回一个新对象，其属性能够反映相应对象在初始化时计算所得的区域和格式化选项。

示例
--

### 基础用例

在不指定区域设置的基本用例中，返回默认区域和默认选项中的格式化字符串。


```js
const number = 3500;

console.log(new Intl.NumberFormat().format(number));
// 如果在美式英语区域 → '3,500'
```

### 使用 locales

此示例展示了本地数字格式化的一些变化。为了得到用户应用接口使用的语言格式，请确保使用 `locales` 参数指定该语言（可能还有一些备选语言）：


```js
const number = 123456.789;

// 德语使用逗号（,）作为小数点，使用句号（.）作为千位分隔符
console.log(new Intl.NumberFormat("de-DE").format(number));
// → 123.456,789

// 大多数阿拉伯语国家使用阿拉伯语数字
console.log(new Intl.NumberFormat("ar-EG").format(number));
// → ١٢٣٤٥٦٫٧٨٩

// India uses thousands/lakh/crore separators
console.log(new Intl.NumberFormat("en-IN").format(number));
// → 1,23,456.789

// 通过编号系统中的 nu 扩展键请求，例如：中文十进制数字
console.log(new Intl.NumberFormat("zh-Hans-CN-u-nu-hanidec").format(number));
// → 一二三,四五六.七八九

//当请求的语言不被支持，例如巴里，包含一个回滚语言印尼，这时候就会使用印尼语
console.log(new Intl.NumberFormat(["ban", "id"]).format(number));
// → 123.456,789
```

### 使用 options

可以使用 `options` (en-US) 参数自定义结果：


```js
const number = 123456.789;

// 要求货币格式
console.log(
  new Intl.NumberFormat("de-DE", { style: "currency", currency: "EUR" }).format(
    number,
  ),
);
// 123.456,79 €

// 日元不使用小数位
console.log(
  new Intl.NumberFormat("ja-JP", { style: "currency", currency: "JPY" }).format(
    number,
  ),
);
// ￥123,457

// 限制三位有效数字
console.log(
  new Intl.NumberFormat("en-IN", { maximumSignificantDigits: 3 }).format(
    number,
  ),
);
// 1,23,000

// 带有单位的格式化
console.log(
  new Intl.NumberFormat("pt-PT", {
    style: "unit",
    unit: "kilometer-per-hour",
  }).format(50),
);
// 50 km/h

console.log(
  (16).toLocaleString("en-GB", {
    style: "unit",
    unit: "liter",
    unitDisplay: "long",
  }),
);
// 16 litres
```


有关详尽的选项列表，参见 `Intl.NumberFormat()` 构造函数 (en-US)页面。

规范
--

| Specification |
| --- |
| ECMAScript Internationalization API Specification # numberformat-objects |

浏览器兼容性
------

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

参见
--

* `Intl`
* FormatJS 中 `Intl.NumberFormat` 的 polyfill
Intl.Segmenter
==============

**`Intl.Segmenter`** 对象支持语言敏感的文本分割，允许你将一个字符串分割成有意义的片段（字、词、句）。

尝试一下
----

构造函数
----

`Intl.Segmenter()`

创建一个新的 `Intl.Segmenter` 对象。

静态方法
----

`Intl.Segmenter.supportedLocalesOf()` (en-US)

返回一个数组，其中包括了传入参数中的受支持的语言，而不必受限于运行时的默认语言环境。

实例方法
----

`Intl.Segmenter.prototype.resolvedOptions()` (en-US)

返回一个新的对象，对象的属性反映了这个 `Intl.Segmenter` 实例初始化期间计算的语言环境和粒度选项。

`Intl.Segmenter.prototype.segment()` (en-US)

返回一个新的 `Segments` (en-US) 实例，它是一个可迭代对象，包含了根据当前 `Intl.Segmenter` 实例的语言环境和粒度选项生成的字符串片段。

示例
--

### 基础用法及与 String.prototype.split() 的区别

如果我们使用 `String.prototype.split(" ")` 来将一段文本分割成词汇，如果这段文本的语言并不是使用空格来分割词汇的话，那我们就不能保证得到的是正确的结果（例如日语、中文、泰语、老挝语、高棉语、缅甸语等语言）。


```js
const str = "吾輩は猫である。名前はたぬき。";
console.table(str.split(" "));
// ['吾輩は猫である。名前はたぬき。']
// 这两个句子并没有得到正确的分割。
```



```js
const str = "吾輩は猫である。名前はたぬき。";
const segmenterJa = new Intl.Segmenter("ja-JP", { granularity: "word" });

const segments = segmenterJa.segment(str);
console.table(Array.from(segments));
// [{segment: '吾輩', index: 0, input: '吾輩は猫である。名前はたぬき。', isWordLike: true},
// etc.
// ]
```

规范
--

| Specification |
| --- |
| ECMAScript Internationalization API Specification # segmenter-objects |

浏览器兼容性
------

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

**`Intl.RelativeTimeFormat`** 对象用于语言敏感的相对时间的格式化。

尝试一下
----

构造函数
----

`Intl.RelativeTimeFormat()` (en-US)

创建一个新的 `Intl.RelativeTimeFormat` 对象。

静态方法
----

`Intl.RelativeTimeFormat.supportedLocalesOf()` (en-US)

返回一个数组，其中包含提供的区域（locale）中被运行时所支持的，而不必回退到运行时的默认区域。

实例方法
----

`Intl.RelativeTimeFormat.prototype.format()` (en-US)

根据给定的 `Intl.RelativeTimeFormat` 对象的区域和格式化选项来格式化值（`value`）和单位（`unit`）。

`Intl.RelativeTimeFormat.prototype.formatToParts()` (en-US)

返回一个对象数组，其中的对象表示的是相对事件格式字符串中的各个部分，可用于自定义本地化格式。

`Intl.RelativeTimeFormat.prototype.resolvedOptions()` (en-US)

返回一个新的对象，其属性反映了在对象初始化期间计算所得的区域和一系列选项。

示例
--

### 基本 format 用法

以下示例显示如何为英语创建相对时间格式化程序。


```js
// 在你的区域下创建相对时间格式化程序
// 显式传入默认值。
const rtf = new Intl.RelativeTimeFormat("en", {
  localeMatcher: "bestfit", // 其他值："lookup"
  numeric: "always", // 其他值："auto"
  style: "long", // 其他值："short"或"narrow"
});

// 使用负值（-1）格式化相对时间。
rtf.format(-1, "day"); // "1 day ago"

// 使用正值（1）格式化相对时间。
rtf.format(1, "day"); // "in 1 day"
```

### 使用 formatToParts

以下示例展示了如何创建一个用于返回格式化后的每一个部分的相对时间格式化程序。


```js
const rtf = new Intl.RelativeTimeFormat("en", { numeric: "auto" });

// 使用日期单位格式化相对时间。
rtf.formatToParts(-1, "day");
// [{type: "literal", value: "yesterday"}]

rtf.formatToParts(100, "day");
// [
// { type: "literal", value: "in " },
// { type: "integer", value: "100", unit: "day" },
// { type: "literal", value: " days" }
// ]
```

规范
--

| Specification |
| --- |
| ECMAScript Internationalization API Specification # relativetimeformat-objects |

浏览器兼容性
------

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

参见
--

* `Intl`
* Intl.RelativeTimeFormat API
* FormatJS 中 `Intl.RelativeTimeFormat` 的 polyfill
Intl.getCanonicalLocales()
==========================

**`Intl.getCanonicalLocales()`** 方法返回一个数组，数组包含规范的区域语言代码，重复的元素将会被去除，每一个元素都会被验证为格式有效的区域语言代码。

尝试一下
----

语法
--


```js
Intl.getCanonicalLocales(locales)
```

### 参数

`locales`

想要规范化的字符串数组。

### 返回值

一个包含规范区域语言代码的数组。

示例
--


```js
Intl.getCanonicalLocales("EN-US"); // ["en-US"]
Intl.getCanonicalLocales(["EN-US", "Fr"]); // ["en-US", "fr"]

Intl.getCanonicalLocales("EN\_US");
// RangeError:'EN\_US' is not a structurally valid language tag
```

规范
--

| Specification |
| --- |
| ECMAScript Internationalization API Specification # sec-intl.getcanonicallocales |

浏览器兼容性
------

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

参见
--

* `Intl.NumberFormat.supportedLocalesOf()` (en-US)
* `Intl.DateTimeFormat.supportedLocalesOf()` (en-US)
* `Intl.Collator.supportedLocalesOf()` (en-US)
Intl.DisplayNames
=================

 **`Intl.DisplayNames`** 是一个对象构造器，它支持语言、区域和脚本显示名称的一致翻译。语法
--
```

new Intl.DisplayNames([locales[, options]])
```

规范
--

| Specification |
| --- |
| ECMAScript Internationalization API Specification # intl-displaynames-objects |
Intl.ListFormat
===============

**`Intl.ListFormat`** 是一个语言相关的列表格式化构造器。

尝试一下
----

语法
--
```

new Intl.ListFormat([locales[, options]])
```

### 参数

`locales`

可选的.。符合 BCP 47 语言标注的字符串或字符串数组。`locales` 参数的一般形式和相关解释，请参阅 Intl page.

`options`

可选的。拥有下面所列属性中任意几个或全部的对象：

* `localeMatcher`
 指定要使用的本地匹配算法。可选的值有`"lookup"` 和 `"best fit"`；默认情况下使用`"best fit"`。该参数的更多信息，请参考`Intl` page.
* `type`
 消息输出的格式。可选的值有用于替代基于“且”关系列表的`"conjunction"` (默认值，例如： `A, B, and C`)，或者用于替代基于“或”关系列表的 `"disjunction"`(例如： `A, B, or C`)，以及用于替代带计量单位的值列表的`"unit"` (例如： `5 pounds, 12 ounces`).
* `style`
 被格式化消息的长度。可选值有：`"long"` (默认值，例如：`A, B, and C`)、`"short"` 或者 `"narrow"` (例如：`A, B, C`)。当`style` 的值为`narrow` 时，type 属性的值只能取值`unit`。

描述
--

### 属性

`Intl.ListFormat.prototype` (en-US)

允许增加一个属性到列表中的所有对象。

### 方法

`Intl.ListFormat.supportedLocalesOf()` (en-US)

返回一个包含指定的被支持区域设置的数组，没有时使用运行环境默认区域设置

示例
--

### 使用 `format`

下面的例子展示了用英语语言怎么去创建一个列表格式化器。


```js
const list = ["Motorcycle", "Bus", "Car"];

console.log(
  new Intl.ListFormat("en-GB", { style: "long", type: "conjunction" }).format(
    list,
  ),
);
// > Motorcycle, Bus and Car

console.log(
  new Intl.ListFormat("en-GB", { style: "short", type: "disjunction" }).format(
    list,
  ),
);
// > Motorcycle, Bus or Car

console.log(
  new Intl.ListFormat("en-GB", { style: "narrow", type: "unit" }).format(list),
);
// > Motorcycle Bus Car
```

### 使用 `formatToParts`

下面的例子展示了如何创建一个返回被格式化部分的列表格式化器。


```js
const list = ["Motorcycle", "Bus", "Car"];
console.log(
  new Intl.ListFormat("en-GB", {
    style: "long",
    type: "conjunction",
  }).formatToParts(list),
);

// > [ { "type": "element", "value": "Motorcycle" }, { "type": "literal", "value": ", " }, { "type": "element", "value": "Bus" }, { "type": "literal", "value": ", and " }, { "type": "element", "value": "Car" } ];
```

规范
--

| Specification |
| --- |
| ECMAScript Internationalization API Specification # listformat-objects |

浏览器兼容性
------

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

参见
--

* `Intl`
* A polyfill of `Intl.ListFormat` in FormatJS
Intl.NumberFormat.prototype.format
==================================

**`Intl.NumberFormat.prototype.format`** 属性返回一个根据`NumberFormat`对象的语言环境和格式化选项，来格式化一个数字的 getter 函数。

尝试一下
----

语法
--
```

numberFormat.format(number)
```

### 参数

`number`

要格式化的数值。

描述
--

该函数返回一个根据`NumberFormat`对象的语言环境和格式化选项，来`format` 一个数字的函数。

示例
--

### 使用 `format`

使用 `format` 格式化一个单一的货币值，以俄罗斯为例：


```js
var options = { style: "currency", currency: "RUB" };
var numberFormat = new Intl.NumberFormat("ru-RU", options);
console.log(numberFormat.format(654321.987));
// → "654 321,99 руб."
```

### 使用 `format` 和 `map`

使用 `format` 返回的函数来格式化数组中的所有数字。注意，该函数绑定到所获得的`NumberFormat`，因此它可以直接传递给`Array.prototype.map`。


```js
var a = [123456.789, 987654.321, 456789.123];
var numberFormat = new Intl.NumberFormat("es-ES");
var formatted = a.map(numberFormat.format);
console.log(formatted.join("; "));
// → "123.456,789; 987.654,321; 456.789,123"
```

规范
--

| Specification |
| --- |
| ECMAScript Internationalization API Specification # sec-intl.numberformat.prototype.format |

浏览器兼容性
------

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

参见
--

* `Intl.NumberFormat`
* `Number.prototype.toLocaleString()`
Intl.Segmenter()
================

**`Intl.Segmenter()`** 构造函数会创建一个 `Intl.Segmenter` 对象，该对象支持语言敏感的文本分割。

尝试一下
----

语法
--


```js
new Intl.Segmenter()
new Intl.Segmenter(locales)
new Intl.Segmenter(locales, options)
```


**备注：** `Intl.Segmenter()` 只能通过 `new` 操作符来构建。如果尝试不使用 `new` 操作符来构建，将会抛出一个 `TypeError` 错误。

### 参数

`locales` 可选

带有 BCP 47 语言区域标记的一个字符串，或者一个这样的字符串数组。对于 `locales` 参数的一般形式和解释，参见语言区域识别和判定。

`options` 可选

带有部分或全部以下属性的一个对象：

`granularity` 可选

字符串。可选值如下：

`"grapheme"`（默认）

根据语言区域，将输入值按字（用户可以感知的字符）划分边界。

`"word"`

根据语言区域，将输入值按词划分边界。

`"sentence"`

根据语言区域，将输入值按句划分边界。


`localeMatcher` 可选

将要使用的语言区域匹配算法。可选值如下：

`"best fit"`（默认）

运行时可能会选择一个可能比查找算法的结果更加合适的语言区域。

`"lookup"`

使用 BCP 47 查找算法来从 `locales` 参数中选择语言区域。对于 `locales` 参数中的每一个语言区域，会返回第一个运行时支持的语言区域（有可能会移除用于限制区域的子标记，来找到一个支持的语言区域。换句话说，如果运行时支持 `"de"` 但不支持 `"de-CH"`，用户传入的 `"de-CH"` 可能就会以 `"de"` 为结果进行使用）。


### 返回值

一个新的 `Intl.Segmenter` 实例。

示例
--

### 基础用法

下面的例子展示了如何计算在一个日语字符串中使用了多少个词汇（使用 `String` 提供的分割方法将得到错误的结果）。


```js
const text = "吾輩は猫である。名前はたぬき。";
const japaneseSegmenter = new Intl.Segmenter("ja-JP", { granularity: "word" });
console.log(
  [...japaneseSegmenter.segment(text)].filter((segment) => segment.isWordLike)
    .length,
);
// 8，文本将会分割为 '吾輩'|'は'|'猫'|'で'|'ある'|'。'|'名前'|'は'|'たぬき'|'。'
```

规范
--

| Specification |
| --- |
| ECMAScript Internationalization API Specification # sec-intl-segmenter-constructor |

浏览器兼容性
------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
WeakRef.prototype.deref()
=========================

`deref`方法返回`WeakRef` 实例的目标对象，如果目标对象已被垃圾收集，则返回`undefined` 。语法
--
```

obj = ref.deref();
```

### 返回值

返回 WeakRef 的目标对象，如果该对象已被垃圾收集，则返回`undefined` 。

说明
--

有关一些重要说明，请参阅`WeakRef`页面上的Notes on WeakRefs 。

示例
--

### 使用 deref

有关完整示例，请参阅`WeakRef`页面的示例部分。


```js
const tick = () => {
  // Get the element from the weak reference, if it still exists
  const element = this.ref.deref();
  if (element) {
    element.textContent = ++this.count;
  } else {
    // The element doesn't exist anymore
    console.log("The element is gone.");
    this.stop();
    this.ref = null;
  }
};
```

规范
--

| Specification |
| --- |
| ECMAScript Language Specification # sec-weak-ref.prototype.deref |

浏览器兼容性
------

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

参见
--

* `WeakRef`
WeakRef() 构造函数
==============

**`WeakRef()`** 会创建一个 `WeakRef` 对象，它是对于目标对象的弱引用。

语法
--


```js
new WeakRef(targetObject)
```


**备注：** `WeakRef()` 必须通过 `new` 关键字调用。试图在没有 `new` 的情况下调用会抛出一个 `TypeError`。

### 参数

`targetObject`

WeakRef 要指向的目标对象 (也称作 *referent*）。

示例
--

### 创建一个新的 WeakRef 对象

完整的示例请见 `WeakRef` 主页面。


```js
class Counter {
  constructor(element) {
    // 创建一个对 DOM 元素的弱引用
    this.ref = new WeakRef(element);
    this.start();
  }
}
```

规范
--

| Specification |
| --- |
| ECMAScript Language Specification # sec-weak-ref-constructor |

浏览器兼容性
------

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

参见
--

* `WeakRef`
Date.prototype.setUTCMilliseconds()
===================================

**`setUTCMilliseconds()`** 方法会根据世界时来设置指定时间的毫秒数。

尝试一下
----

语法
--
```

dateObj.setUTCMilliseconds(millisecondsValue)
```

### 参数

`millisecondsValue`

0 - 999 之间的数值，代表毫秒数。

### 返回值

返回更新后的时间距 1970 年 1 月 1 日 00:00:00 (UTC) 的毫秒数。

描述
--

如果传递的参数超出了指定的范围，`setUTCMilliseconds()` 方法会相应地尝试更新储存在 `Date` 的时间信息。例如，假设你传递参数的值是 1100，存储在 `Date` 的秒数会加 1，然后使用 100 来作为毫秒数。

示例
--

### 使用 `setUTCMilliseconds() 方法`


```js
var 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.setTime()
========================

**`setTime()`** 方法以一个表示从 1970-1-1 00:00:00 UTC 计时的毫秒数为来为 `Date` 对象设置时间。

尝试一下
----

语法
--
```

dateObj.setTime(timeValue)
```

### 参数

`timeValue`

一个整数，表示从 1970-1-1 00:00:00 UTC 开始计时的毫秒数。

### 返回值

UTC 1970 年 1 月 1 日 00:00:00 与更新日期之间的毫秒数（实际上是自变量的值）。

描述
--

使用 `setTime` 方法用来把一个日期时间赋值给另一个 `Date` 对象。

示例
--

### 示例：使用`setTime`
```

theBigDay = new Date("July 1, 1999");
sameAsBigDay = new Date();
sameAsBigDay.setTime(theBigDay.getTime());
```

规范
--

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

浏览器兼容性
------

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

参见
--

* `Date.prototype.getTime()`
* `Date.prototype.setUTCHours()`
Date.prototype.getMinutes()
===========================

**`getMinutes()`** 方法根据本地时间，返回一个指定的日期对象的分钟数。

尝试一下
----

语法
--


```js
getMinutes()
```

### 参数

无

### 描述

`getMinutes` 返回一个 0 到 59 的整数值。

示例
--

### 示例：使用`getMinutes` 方法

下例中，第二行语句运行过后，变量 `minutes` 的值为 15，也就是说 `Xmas95` 这个日期对象的值为某时 15 分某秒。


```js
var Xmas95 = new Date("December 25, 1995 23:15:00");
var minutes = Xmas95.getMinutes();
```

规范
--

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

浏览器兼容性
------

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

参见
--

* `Date.prototype.getUTCMinutes()`
* `Date.prototype.setMinutes()`
Date.prototype.getYear()
========================

**已弃用:** 不再推荐使用该特性。虽然一些浏览器仍然支持它，但也许已从相关的 web 标准中移除，也许正准备移除或出于兼容性而保留。请尽量不要使用该特性，并更新现有的代码；参见本页面底部的兼容性表格以指导你作出决定。请注意，该特性随时可能无法正常工作。

**`getYear()`** 方法返回指定的本地日期的年份。因为 `getYear()` 不返回千禧年（"year 2000 problem"），所以这个方法不再被使用，现在替换为 `getFullYear`。

语法
--


```js
getYear()
```

### 返回值

`getYear` 方法返回一个年份减去 1900 的值；因此：

* 如果年份大于等于 2000，则 `getYear()` 的返回值将大于等于 100。例如，如果年份是 2026，则 `getYear()` 返回 126。
* 如果年份在 1900 到 1999 之间，`getYear()` 的返回值将在 0 到 99 之间。例如，如果年份是 1976，则 `getYear()` 返回 76。
* 如果年份小于 1900，则 `getYear()` 的返回值将小于 0。例如，如果年份是 1800，则 `getYear()` 返回 -100。

如果要同时考虑 2000 年之前和之后的年份，应该使用 `getFullYear()` 而不是 `getYear()`，以便指定完整年份。

向后兼容性
-----

### 在 JavaScript 1.2 及更早版本中的行为

The `getYear` method returns either a 2-digit or 4-digit year:

* For years between and including 1900 and 1999, the value returned by `getYear` is the year minus 1900. For example, if the year is 1976, the value returned is 76.
* For years less than 1900 or greater than 1999, the value returned by `getYear` is the four-digit year. For example, if the year is 1856, the value returned is 1856. If the year is 2026, the value returned is 2026.
示例
--

### 1900 年到 1999 年之间的年份

The second statement assigns the value 95 to the variable `year`.


```js
var Xmas = new Date("December 25, 1995 23:15:00");
var year = Xmas.getYear(); // returns 95
```

### 年份大于 1999

The second statement assigns the value 100 to the variable `year`.


```js
var Xmas = new Date("December 25, 2000 23:15:00");
var year = Xmas.getYear(); // returns 100
```

### 年份小于 1900

The second statement assigns the value -100 to the variable `year`.


```js
var Xmas = new Date("December 25, 1800 23:15:00");
var year = Xmas.getYear(); // returns -100
```

### 设置和获取 1900 年到 1999 年之间的年份

The second statement assigns the value 95 to the variable `year`, representing the year 1995.


```js
var Xmas.setYear(95);
var year = Xmas.getYear(); // returns 95
```

规范
--

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

浏览器兼容性
------

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

参见
--

* `Date.prototype.getFullYear()`
* `Date.prototype.getUTCFullYear()`
* `Date.prototype.setYear()`
Date.prototype.getUTCMilliseconds()
===================================

**`getUTCMilliseconds()`** 方法以世界时为标准，返回一个指定的日期对象的毫秒数。

尝试一下
----

语法
--
```

dateObj.getUTCMilliseconds()
```

### 参数

无。

### 返回值

`getUTCMilliseconds()` 返回一个 0 到 999 的整数。

示例
--

### 示例：使用 `getUTCMilliseconds()` 方法

下例将当前时间的毫秒部分赋值给变量 `milliseconds`。


```js
var today = new Date();
var 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.getFullYear()
============================

**`getFullYear()`** 方法根据本地时间返回指定日期的年份。

此方法替代 `getYear()` 。

尝试一下
----

语法
--


```html
dateObj.getFullYear()
```

### 返回值

根据当地时间，返回一个对应于给定日期的年份数字。

描述
--

`getFullYear()`返回的值是绝对数。对于 1000 到 9999 之间的日期，`getFullYear()`返回一个四位数字，如 1995。使用此函数确保在 2000 年后兼容。

示例
--

### 使用`getFullYear()`

下面的例子将当前年份的四位数值分配给变量`year`。


```js
var today = new Date();
var year = today.getFullYear();
```

规范
--

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

浏览器兼容性
------

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

参见
--

* `Date.prototype.getUTCFullYear()`
* `Date.prototype.setFullYear()`
* `Date.prototype.getYear()`
Date.prototype.setUTCMonth()
============================

**`setUTCMonth()`** 方法根据通用的时间来设置一个准确的月份。

尝试一下
----

语法
--
```

dateObj.setUTCMonth(monthValue[, dayValue])
```

### 参数

`monthValue`

一个 0-11 的整数，代表 1 月到 12 月。

`dayValue`

可选参数：一个 1-31 的整数，代表一个月的天数。

### 返回值

这个数值是从 1970 年 1 月 1 号 00:00:00 到当前时间的毫秒数（国际通用时间）

描述
--

如果你没有明确书写`dayValue` 这个参数，那么就会从`getUTCDate()` 方法返回对应的数值。

如果你写了一个超过在规定的范围内的参数。`setUTCMonth()` 就会试图相应的更新时间信息在 Data 对象中。例如，如果你用 15 作为 `monthValue` 的值，那么年份就会加 1，并且月份会变成 3。（15=12+3）

示例
--

### 使用 `setUTCMonth()`


```js
var theBigDay = new Date();
theBigDay.setUTCMonth(11);
```

规范
--

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

浏览器兼容性
------

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

更多
--

* `Date.prototype.getUTCMonth()`
* `Date.prototype.setMonth()`
Date.prototype.toUTCString()
============================

**`toUTCString()`** 方法把一个日期转换为一个字符串，使用 UTC 时区。

尝试一下
----

语法
--
```

dateObj.toUTCString()
```

### 返回值

返回使用 UTC 时区表示给定日期的字符串

描述
--

`toUTCString` 的返回值是一个使用 UTC 时区的易读格式字符串。返回值的格式可能随平台而变化。通常返回值是一个 RFC-1123 格式的时间戳，这是一个 RFC-822 时间戳的小幅更新版。

示例
--

### 示例：使用`toUTCString`
```

var today = new Date();
var UTCstring = today.toUTCString();
// Mon, 03 Jul 2006 21:44:38 GMT
```

规范
--

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

浏览器兼容性
------

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

参见
--

* `Date.prototype.toLocaleString()`
* `Date.prototype.toDateString()`
* `Date.prototype.toISOString()`
Date.prototype.setUTCDate()
===========================

**`setUTCDate()`** 方法就是根据全球时间设置特定 date 对象的日期。

尝试一下
----

语法
--
```

dateObj.setUTCDate(dayValue)
```

### 参数

`dayValue`

一个 1-31 的整形数字，用来指定日期。

描述
--

如果你指定的参数超出了范围，setUTCDate() 会尝试更新对应的`Date` 中的日期信息。例如，如果你使用了 40 来作为参数，但是`Date` 中存储的月份为 6 月，那么日期将被改写为 10 且月份被增到 7 月。

示例
--

### 使用 `setUTCDate()`


```js
var 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()`** 方法根据本地时间为一个日期对象设置小时数，返回从 1970-01-01 00:00:00 UTC 到更新后的 `日期` 对象实例所表示时间的毫秒数。

尝试一下
----

语法
--
```

dateObj.setHours(hoursValue[, minutesValue[, secondsValue[, msValue]]])
```

### JavaScript 1.3 版本之前
```

dateObj.setHours(hoursValue)
```

### 参数

`hoursValue`

一个 0 到 23 的整数，表示小时。

`minutesValue`

一个 0 到 59 的整数，表示分钟。

`secondsValue`

一个 0 到 59 的整数，表示秒数。如果指定了 `secondsValue` 参数，则必须同时指定 `minutesValue` 参数。

`msValue`

一个 0 到 999 的数字，表示微秒数，如果指定了 `msValue` 参数，则必须同时指定 `minutesValue` 和 `secondsValue` 参数。

描述
--

如果不指定 `minutesValue`，`secondsValue` 和 `msValue` 参数，则会使用`getMinutes()`，`getSeconds()` 和`getMilliseconds()` 方法的返回值。

如果有一个参数超出了合理范围，`setHours` 会相应地更新日期对象中的日期信息。例如，如果为 `secondsValue` 指定了 100，则分钟会加 1，然后秒数使用 40。

示例
--

### 示例：使用 `setHours` 方法


```js
var 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.toString()
=========================

**`toString()`** 方法返回一个字符串，以本地的时区表示该 `Date` 对象。

尝试一下
----

语法
--


```js
toString()
```

### 返回值

一个表示给定 date 对象的字符串。

描述
--

`Date` 对象覆盖了 `Object` 对象的 `toString()` 方法。`Date.prototype.toString()` 返回一个字符串，并以本地时区表示该 Date 对象，包含日期和时间——将 `toDateString()` 和 `toTimeString()` 通过一个空格拼接起来。

例如：“Thu Jan 01 1970 12:42:04 GMT+0800 (中国标准时间)”。

当 Date 被强制转换为字符串时，`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()); // Wed Sep 09 1998 05:36:22 GMT+0800 (中国标准时间)
```

规范
--

| 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()`