我想存储timezone of client (visitor)
要使用我的门户网站的内容。你能告诉我找出timezone for client machine using JAVAScript
代码的方法吗...
I need the GMT offset hours like `(GMT +5:30)`.
我想存储timezone of client (visitor)
要使用我的门户网站的内容。你能告诉我找出timezone for client machine using JAVAScript
代码的方法吗...
I need the GMT offset hours like `(GMT +5:30)`.
这可能是查找客户端本地时间/偏移量的更好方法
function pad(number, length){
var str = "" + number;
while (str.length < length) {
str = '0'+str;
}
return str;
}
var offset = new Date().getTimezoneOffset();
offset = ((offset<0? '+':'-')+ pad(parseInt(Math.abs(offset/60)), 2)+":"+pad(Math.abs(offset%60), 2));
alert(offset);
输出就像 = +05:30
var OffSetMinute = new Date().getTimezoneOffset();
OffSetMinute var 将给出 UTC 和本地时间之间的分钟差。如果本地时区在 UTC 之后,则偏移量为正,如果在前面,则偏移量为负。
正如评论中所说,@Guillaume
上述方法已被弃用,因此您可以使用以下方法
private static final Calendar cal = new Calendar();
private static final int LOCALTIMEZONEOFFSET = (cal.get(Calendar.ZONE_OFFSET) + cal.get(Calendar.DST_OFFSET)) / (60*1000);
Calendar.ZONE_OFFSET
为您提供标准偏移量(以毫秒为单位)UTC
。这不会随着夏令时而改变。(夏令时)
Calendar.DST_OFFSET
为您提供当前的 DST 偏移量(以毫秒为单位) - 如果有的话。例如,在使用 DST 的国家/地区的夏季,该字段可能具有value +1 hour (1000*60*60 msecs)
.
所以只要ADD
int LOCALTIMEZONEOFFSET
价值(如果是正数)或substarct
价值(如果你的价值是负数)进入你的UTC Time
,那会给你客户端机器的时间。
function getTimezone() {
var u = new Date().toString().match(/([-\+][0-9]+)\s/)[1];
return u.substring(0, 3) + ':' + u.substring(3, u.length);
}
对我有用的代码...
<script type="text/javascript" language="javascript" >
function fnLoad()
{
var objLocalZone = new Date();
var strLocalZone=''+objLocalZone;
var mySplitResult = strLocalZone.split(" ");
var newLocalZone = mySplitResult[5].slice(0,mySplitResult[5].length-2) +':'+mySplitResult[5].slice(mySplitResult[5].length-2,mySplitResult[5].length);
document.getElementById("hdnTimeZone").value = newLocalZone;
//alert('Length : '+newLocalZone);
}
</script>
隐藏输入
<input type="hidden" id="hdnTimeZone" name="hdnTimeZone"/>
我不知道这是获取客户(访客)时区的正确方法。但这对我来说很好。如果有人有最佳解决方案,请告诉我。谢谢...