在 JavaScript 中获取时区
-
使用 JavaScript 中的
Date()
函数和slice()
函数获取时区及其偏移量 -
使用 JavaScript 中的
Date()
函数和getTimezoneOffset()
函数获取时区偏移量 -
使用 JavaScript 中的
DateTimeFormat()
函数获取时区
本教程讨论如何使用 Date()
函数以及 JavaScript 中的 slice()
、getTimezoneOffset()
和 DateTimeFormat()
函数获取时区及其偏移量。
使用 JavaScript 中的 Date()
函数和 slice()
函数获取时区及其偏移量
我们可以使用 Date()
函数来查找时区及其偏移量,但它也会返回日期和时间。例如,让我们使用 Date()
函数来获取当前日期、时间、偏移量和时区。请参考下面的代码。
var MyDate = new Date();
console.log(MyDate);
输出:
Wed Jun 23 2021 08:29:17 GMT+0500 (Pakistan Standard Time)
在输出中,你可以看到 Date()
函数返回了当前日期、时间、偏移量和时区。如果只想获取时区或偏移量,则必须将输出转换为字符串以对其进行切片以获得所需的输出。
要将其转换为字符串,我们可以使用 toTimeString()
函数,该函数将返回时间、偏移量和时区。之后,我们可以使用 slice
函数来获得我们想要的输出。例如,让我们从上面的输出中获取时区偏移量。请参考下面的代码。
var MyDate = new Date();
console.log(MyDate);
var MyString = MyDate.toTimeString();
console.log(MyString);
var MyOffset = MyString.slice(9,17);
console.log(MyOffset);
输出:
Wed Jun 23 2021 08:29:17 GMT+0500 (Pakistan Standard Time)
08:39:52 GMT+0500 (Pakistan Standard Time)
GMT+0500
在输出中,第二行由 toTimeString()
函数返回,第三行由 slice()
函数返回。slice()
函数的第一个和第二个参数是我们想要切片的字符的位置。
例如,slice(9,17)
函数将从第 9 个字符开始切片,直到第 17 个字符。如果你不定义第二个参数,该函数将切片直到字符串的最后一个字符。
使用 JavaScript 中的 Date()
函数和 getTimezoneOffset()
函数获取时区偏移量
我们可以使用 Date()
函数和 getTimezoneOffset()
函数来获取时区偏移量。此方法将以分钟为单位返回时区偏移量。请参考下面的示例代码进行演示。
var MyDate = new Date();
console.log(MyDate);
var MyOffset = MyDate.getTimezoneOffset();
console.log(MyOffset);
输出:
Wed Jun 23 2021 08:29:17 GMT+0500 (Pakistan Standard Time)
-300
正如你在输出中看到的,第二行是以分钟为单位的时区偏移量。它与第一行不同,因为在那里,偏移量以小时为单位。你也可以将其除以 -60 将其转换为小时。请参考下面的代码。
var MyDate = new Date();
console.log(MyDate);
var MyOffset = (MyDate.getTimezoneOffset())/-60;
console.log(MyOffset);
输出:
Wed Jun 23 2021 08:29:17 GMT+0500 (Pakistan Standard Time)
5
正如你在输出中看到的,两行中的偏移量相等。请注意,getTimezoneOffset()
函数将仅返回偏移量,而不是 UTC 或 GMT。
使用 JavaScript 中的 DateTimeFormat()
函数获取时区
我们可以使用 DateTimeFormat()
函数来获取 JavaScript 中的时区。例如,请参考下面的代码。
var MyTimeZone = Intl.DateTimeFormat().resolvedOptions().timeZone;
console.log(MyTimeZone);
输出:
UTC
Intl
返回 IANA 时区,它与所有现代浏览器兼容。