基于ip位置的javascript中的TimeZone调整

时间:2018-05-29 20:00:05

标签: javascript time ip timezone-offset

offset = new Date().getTimezoneOffset();

根据计算机时钟或浏览器的时区,您可以获得时区偏移量。 有没有办法根据ip位置获得时区偏移?

2 个答案:

答案 0 :(得分:0)

http://ip-api.com/处的API会返回IP地址的纬度,经度和时区。时区的格式为" America / New_York"等等,你需要将moment.js和moment-timezone.js转化为实际的小时和分钟偏移。

请记住,由于夏令时的规则,给定位置的时区偏移量不一定是常数 - 这就是为什么命名时区如" America / New_York"使用,以及为什么你需要像moment.js这样的东西来解释任何特定时间的时区偏移。

答案 1 :(得分:0)

您可以使用momentjs并像这样获取用户区域:

const moment = require('moment-timezone');
let zone = moment.tz.guess()

一旦获得了时区,就可以使用它来获取时区:

const tzn = moment().tz(zone).format('DD-MMM-YYYY HH:mm:ss Z');

有关更多说明,您可以查看一下momentjs文档:https://momentjs.com/timezone/docs/#/using-timezones/guessing-user-timezone/