📜  JavaScript 获取客户端时区偏移量 - Javascript (1)

📅  最后修改于: 2023-12-03 15:01:46.023000             🧑  作者: Mango

JavaScript 获取客户端时区偏移量

JavaScript 可以获取客户端的时区偏移量,方便开发者对日期和时间进行处理,比如在网站中显示用户本地时间等。

方法一:使用 getTimezoneOffset() 方法

getTimezoneOffset() 方法返回当前的时区偏移量,单位为分钟。负值表示西半球,正值表示东半球。

let offset = new Date().getTimezoneOffset();

可根据 offset 的值计算出当前时区的 UTC 偏移量。

方法二:使用 Intl.DateTimeFormat().resolvedOptions().timeZone 方法

这种方式会直接返回客户端所在的时区,方便直接使用。需要注意的是,这种方法在 IE 和 Safari 浏览器中可能不被支持。

let timeZone = Intl.DateTimeFormat().resolvedOptions().timeZone;
示例代码
// 获取当前的时区偏移量,单位为分钟
let offset = new Date().getTimezoneOffset();

// 计算 UTC 偏移量
let utcOffset = -offset / 60;

// 输出当前时区偏移量和 UTC 偏移量
console.log('当前时区偏移量: ' + offset + '分钟');
console.log('UTC 偏移量: ' + utcOffset + '小时');

// 获取客户端时区
let timeZone = null;
if (typeof Intl === 'object' && typeof Intl.DateTimeFormat === 'function') {
  timeZone = Intl.DateTimeFormat().resolvedOptions().timeZone;
}

if (timeZone) {
  console.log('客户端时区: ' + timeZone);
} else {
  console.log('客户端时区获取失败');
}

以上代码会通过控制台输出当前时区偏移量、UTC 偏移量以及客户端时区(如果能成功获取到)。

总结

以上就是 JavaScript 获取客户端时区偏移量的方法和示例代码,开发者可以根据自己的需要选择适合自己的方式。需要注意的是,由于各浏览器的实现有所差异,建议在使用时进行兼容性测试。