我想存储将要使用我的门户网站的timezone of client (visitor)
。
你能告诉我找出timezone for client machine using JAVAScript
代码的方法......
I need the GMT offset hours like `(GMT +5:30)`.
答案 0 :(得分:8)
这可能是查找客户端本地时间/偏移的更好方法
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
答案 1 :(得分:3)
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
的标准偏移量(以msecs为单位)。这与DST不会改变。 (节日照明)
Calendar.DST_OFFSET
为您提供当前的DST偏移量(以msecs为单位) - 如果有的话。例如,在夏季,在使用DST的国家/地区,此字段可能包含value +1 hour (1000*60*60 msecs)
。
所以只需ADD
int LOCALTIMEZONEOFFSET
价值(如果为正)或substarct
价值(如果您的值为负)进入您的UTC Time
并且会给您客户机器的时间
答案 2 :(得分:2)
function getTimezone() {
var u = new Date().toString().match(/([-\+][0-9]+)\s/)[1];
return u.substring(0, 3) + ':' + u.substring(3, u.length);
}
答案 3 :(得分:1)
适用于我的代码...
<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"/>
我不知道这是获取客户(访客)时区的正确方法。但它对我来说很好。如果有人有最佳解决方案,请告诉我。感谢...