如何收集访问者的时区信息?
我两者都需要:
时区(例如,欧洲/伦敦) 与UTC或GMT的偏移(例如,UTC+01)
如何收集访问者的时区信息?
我两者都需要:
时区(例如,欧洲/伦敦) 与UTC或GMT的偏移(例如,UTC+01)
当前回答
如果你只需要“MST”或“EST”时区缩写:
函数getTimeZone () { var now = new Date().toString(); var timeZone = now.replace(/.*[(](.*)[)].*/,'$1') 返回时区; } console.log (getTimeZone ());
其他回答
将OffSet转换为正数:
var offset = new Date().getTimezoneOffset();
console.log(offset);
this.timeOffSet = offset + (-2*offset);
console.log(this.timeOffSet);
这个就行了。
var time = new Date(),
timestamp = Date(1000 + time.getTime());
console.log(timestamp);
Thu May 25 2017 21:35:14 GMT+0300 (IDT)
未定义的
这就是我的解决方案:
// For time zone:
const timeZone = /\((.*)\)/.exec(new Date().toString())[1];
// Offset hours:
const offsetHours = new Date().getTimezoneOffset() / 60;
console.log(`${timeZone}, ${offsetHours}hrs`);
下面是通过将时区传递给函数来查找远程国家TimezoneOffset的解决方案。在这个例子中,'Asia/Calcutta'是时区
function getTimezoneOffset(timezone) {
LocalDate = new Date();
LocalDate.setMilliseconds(0);
const LocalOffset = LocalDate.getTimezoneOffset();
RemoteLocaleStr = LocalDate.toLocaleString('en-US', {timeZone: timezone});
RemoteDate = new Date(RemoteLocaleStr);
diff = (LocalDate.getTime()-RemoteDate.getTime()) / 1000 / 60 ;
RemoteOffset = LocalOffset + diff;
return RemoteOffset;
}
console.log(getTimezoneOffset('Asia/Calcutta'));
在新的Date()中,你可以获得偏移量,要获得时区名称,你可以这样做:
.replace .toString新的日期()() (/(.*\((.*)\).*)/, '$ 2》);
在日期的末尾得到between()值,即时区的名称。