Date.UTC()
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
Date.UTC()
方法接受的参数同 Date
构造函数接受最多参数时一样,但该前者会视它们为 UTC 时间,其返回从 1970 年 1 月 1 日 00:00:00 UTC 到指定时间的毫秒数。
尝试一下
语法
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
-
一个表示年份的整数值。
从
0
到99
的值会被映射到1900
至1999
年。其他的值则代表实际的年份。参见示例。 month
可选-
0
(一月)到11
(十二月)之间的一个整数,表示月份。从 ECMAScript 2017 开始,如果忽略该值,则默认为0
。(直到 ECMAScript 2016,month
都是必须的参数。而从 ES2017 开始,它不再是必须的。) date
可选-
1
到31
之间的一个整数,表示某月当中的第几天。如果忽略该值,则默认为1
。 hour
可选-
0
到23
之间的一个整数,表示小时。如果忽略该值,则默认为0
。 minute
可选-
0
到59
之间的一个整数,表示分钟。如果忽略该值,则默认为0
。 second
可选-
0
到59
之间的一个整数,表示秒。如果忽略该值,则默认为0
。 millisecond
可选-
0
到999
之间的一个整数,表示毫秒。如果忽略该值,则默认为0
。
返回值
一个数字,表示从 1970 年 1 月 1 日 00:00:00 UTC 到给定时间的毫秒数。
描述
UTC()
方法接受以逗号隔开的时间参数,返回 1970 年 1 月 1 日 00:00:00 UTC 到指定的时间之间的毫秒数。
如果年份被指定为 0
到 99
之间,则该方法会将年份转换为 20 世纪的一个年份(即 1900 + year
),例如,指定为 95
,则年份为 1995
。
UTC()
方法与 Date
构造函数有两点不同:
Date.UTC()
方法使用协调世界时代替本地时间。Date.UTC()
方法返回一个时间数值,而不是一个Date
对象。
如果有一个指定的参数超出其合理范围,则 UTC 方法会通过更新其他参数直到该参数在合理范围内。例如,为月份指定 15
,则年份将会加 1
(year + 1
),然后月份将会使用 3
。
由于 UTC()
是 Date
的一个静态方法,所以应该直接调用 Date.UTC()
,而不要把它作为 Date
实例的方法。
示例
使用 Date.UTC()
下面的语句使用 UTC 时间代替本地时间创建了一个 Date
对象。
const utcDate = new Date(Date.UTC(2018, 11, 1, 0, 0, 0));
规范
Specification |
---|
ECMAScript Language Specification # sec-date.utc |
浏览器兼容性
BCD tables only load in the browser
兼容性备注
少于两个参数的 Date.UTC()
当向 Date.UTC()
提供少于两个的参数时,ECMAScript 2017 要求返回 NaN
。不支持此行为的引擎已被更新(参见 bug 1050755、ecma-262 #642)。
Date.UTC();
Date.UTC(1);
// Safari: NaN
// Chrome/Opera/V8: NaN
// Firefox <54: non-NaN
// Firefox 54+: NaN
// IE: non-NaN
// Edge: NaN