如何收集访问者的时区信息?
我两者都需要:
时区(例如,欧洲/伦敦) 与UTC或GMT的偏移(例如,UTC+01)
如何收集访问者的时区信息?
我两者都需要:
时区(例如,欧洲/伦敦) 与UTC或GMT的偏移(例如,UTC+01)
当前回答
尝试Date对象的getTimezoneOffset():
var curdate = new Date()
var offset = curdate.getTimezoneOffset()
此方法返回时区偏移量(以分钟为单位),即GMT和本地时间之间的差值(以分钟为单位)。
其他回答
试试这个:
new Date().toLocaleString("en-US",Intl.DateTimeFormat().resolvedOptions().timeZone)
这将在客户端的浏览器上查找timeZone。
moment.js:
moment().format('zz');
使用momentjs,您可以找到当前时区为
console.log(时刻).utcOffset ());//(-240, -120, - 60,0, 60,120, 240,等等) < script src = " https://cdn.jsdelivr.net/momentjs/2.13.0/moment.min.js " > < /脚本>
使用dayjs,您可以找到当前时区为
console.log(dayjs().utcOffset());(-240、-120、-60、0、60、120、240 等) <script src=“https://unpkg.com/dayjs@1.8.10/dayjs.min.js”></script>
这两个API都返回以分钟为单位的utc偏移量。
现在医生 Dayjs医生
它已经回答了如何以分钟为单位获得一个整数的偏移量,但如果有人想要本地格林尼治标准时间偏移量作为字符串,例如。“+ 1130”:
function pad(number, length){
var str = "" + number
while (str.length < length) {
str = '0'+str
}
return str
}
var offset = new Date().getTimezoneOffset()
offset = ((offset<0? '+':'-')+ // Note the reversed sign!
pad(parseInt(Math.abs(offset/60)), 2)+
pad(Math.abs(offset%60), 2))
你可以简单地试试这个。 它将返回您当前的机器时间
var _d = new Date(), T = 0, d = new Date(t*1000 + _d.getTime())