я хочу сохранить 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
дает вам текущее смещение летнего времени (в мсек) - если есть. Например, летом в стране, где используется летнее время, это поле, скорее всего, будет иметь value +1 hour (1000*60*60 msecs)
.
так что просто ADD
int LOCALTIMEZONEOFFSET
значение (если положительное) или substarct
значение (если ваше значение отрицательное) в ваш UTC Time
и это даст вам время клиентской машины.
код, который работает для меня...
<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"/>
я не знаю, что это правильный способ получить часовой пояс клиента (посетителя). но у меня это работает нормально. Если у кого-нибудь есть оптимальное решение, дайте мне знать. Благодарность...
Javascript
, а не Java
! Пожалуйста, обновите ярлык, который вы использовали для своего вопроса!
- person C.Champagne; 08.07.2013
Java != JavaScript
. Какой из них вам нужен? Если это последнее, ссылка @MichaelLang будет работать для вас. - person Harsha Venkatram   schedule 08.07.2013