【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>
如何收集访问者的时区信息? 我需要时区以及GMT偏移时间。
#1楼
尝试使用Date
对象的getTimezoneOffset()
:
var curdate = new Date()
var offset = curdate.getTimezoneOffset()
此方法返回以分钟为单位的时区偏移量,这是GMT与本地时间(以分钟为单位)之差。
#2楼
var offset = new Date().getTimezoneOffset(); console.log(offset);
时区偏移量是UTC与本地时间之间的差(以分钟为单位)。 请注意,这意味着如果本地时区在UTC之后,则偏移量为正;如果在本地时区之前,则偏移量为负。 例如,如果您的时区是UTC + 10(澳大利亚东部标准时间),则将返回-600。 夏时制即使在给定的语言环境下也可以防止该值保持恒定
请注意,并非所有时区都被整个小时抵消:例如,纽芬兰是UTC减去3h 30m(将夏令时排除在外)。
#3楼
我意识到这个答案有点离题,但是我想我们当中许多人都在寻找答案,但他们也想格式化显示的时区,也许还要获得时区缩写。 所以就这样...
如果您希望客户端时区格式正确,则可以依赖JavaScript Date.toString方法并执行以下操作:
var split = new Date().toString().split(" ");
var timeZoneFormatted = split[split.length - 2] + " " + split[split.length - 1];
例如,这将为您提供“ GMT-0400(EST)”,包括时区分钟(如果适用)。
或者,使用正则表达式可以提取任何所需的部分:
对于“ GMT-0400(EDT)”:
new Date().toString().match(/([A-Z]+[\+-][0-9]+.*)/)[1]
对于“ GMT-0400”:
new Date().toString().match(/([A-Z]+[\+-][0-9]+)/)[1]
仅针对“ EDT”:
new Date().toString().match(/\(([A-Za-z\s].*)\)/)[1]
对于“ -0400”:
new Date().toString().match(/([-\+][0-9]+)\s/)[1]
Date.toString参考: https : //developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/toString
#4楼
随着moment.js :
moment().format('zz');
#5楼
我在项目中编写了一个函数,该函数以hh:mm
格式返回时区。 我希望这可以帮助某人:
function getTimeZone() {
var offset = new Date().getTimezoneOffset(), o = Math.abs(offset);
return (offset < 0 ? "+" : "-") + ("00" + Math.floor(o / 60)).slice(-2) + ":" + ("00" + (o % 60)).slice(-2);
}
// Outputs: +5:00
function getTimeZone() { var offset = new Date().getTimezoneOffset(), o = Math.abs(offset); return (offset < 0 ? "+" : "-") + ("00" + Math.floor(o / 60)).slice(-2) + ":" + ("00" + (o % 60)).slice(-2); } // See output document.write(getTimeZone());
来源:oschina
链接:https://my.oschina.net/stackoom/blog/3154604