Date.UTC() 方法接受的参数同 Date 构造函数接受最多参数时一样,但该前者会视它们为 UTC 时间,其返回从 1970 年 1 月 1 日 00:00:00 UTC 到指定时间的毫秒数。

{{InteractiveExample("JavaScript Demo: Date.UTC()")}}

```js interactive-example const utcDate1 = new Date(Date.UTC(96, 1, 2, 3, 4, 5)); const utcDate2 = new Date(Date.UTC(0, 0, 0, 0, 0, 0));

console.log(utcDate1.toUTCString()); // Expected output: "Fri, 02 Feb 1996 03:04:05 GMT"

console.log(utcDate2.toUTCString()); // Expected output: "Sun, 31 Dec 1899 00:00:00 GMT"


## 语法 ```js-nolint Date.UTC(year) Date.UTC(year, month) Date.UTC(year, month, day) Date.UTC(year, month, day, hour) Date.UTC(year, month, day, hour, minute) Date.UTC(year, month, day, hour, minute, second) Date.UTC(year, month, day, hour, minute, second, millisecond)

参数

  • year

    • : 一个表示年份的整数值。

    099 的值会被映射到 19001999 年。其他的值则代表实际的年份。参见示例

  • month {{optional_inline}}

    • : 0(一月)到 11(十二月)之间的一个整数,表示月份。从 ECMAScript 2017 开始,如果忽略该值,则默认为 0(直到 ECMAScript 2016,month 都是必须的参数。而从 ES2017 开始,它不再是必须的。)
  • date {{optional_inline}}
    • : 131 之间的一个整数,表示某月当中的第几天。如果忽略该值,则默认为 1
  • hour {{optional_inline}}
    • : 023 之间的一个整数,表示小时。如果忽略该值,则默认为 0
  • minute {{optional_inline}}
    • : 059 之间的一个整数,表示分钟。如果忽略该值,则默认为 0
  • second {{optional_inline}}
    • : 059 之间的一个整数,表示秒。如果忽略该值,则默认为 0
  • millisecond {{optional_inline}}
    • : 0999 之间的一个整数,表示毫秒。如果忽略该值,则默认为 0

返回值

一个数字,表示从 1970 年 1 月 1 日 00:00:00 UTC 到给定时间的毫秒数。

描述

UTC() 方法接受以逗号隔开的时间参数,返回 1970 年 1 月 1 日 00:00:00 UTC 到指定的时间之间的毫秒数。

如果年份被指定为 099 之间,则该方法会将年份转换为 20 世纪的一个年份(即 1900 + year),例如,指定为 95,则年份为 1995

UTC() 方法与 Date 构造函数有两点不同:

  1. Date.UTC() 方法使用协调世界时代替本地时间。
  2. Date.UTC() 方法返回一个时间数值,而不是一个 Date 对象。

如果有一个指定的参数超出其合理范围,则 UTC 方法会通过更新其他参数直到该参数在合理范围内。例如,为月份指定 15,则年份将会加 1year + 1),然后月份将会使用 3

由于 UTC()Date 的一个静态方法,所以应该直接调用 Date.UTC(),而不要把它作为 Date 实例的方法。

示例

使用 Date.UTC()

下面的语句使用 UTC 时间代替本地时间创建了一个 Date 对象。

const utcDate = new Date(Date.UTC(2018, 11, 1, 0, 0, 0));